Python遍历文件夹 处理json文件的方法


Posted in Python onJanuary 22, 2019

有两种做法:os.walk()、pathlib库,个人感觉pathlib库的path.glob用来匹配文件比较简单。

下面是第二种做法的实例(第一种做法百度有很多文章):

from pathlib import Path
import json

analysis_root_dir = "D:\\analysis_data\json_file"
store_result="D:\\analysis_data\\analysis_result\\dependency.csv"

def parse_dir(root_dir):
  path = Path(root_dir)

  all_json_file = list(path.glob('**/*.json'))

  parse_result = []

  for json_file in all_json_file:

    # 获取所在目录的名称
    service_name = json_file.parent.stem
    with json_file.open() as f:
      json_result = json.load(f)
    json_result["service_name"] = service_name
    parse_result.append(json_result)

  return parse_result

def write_result_in_file(write_path , write_content):

  with open(write_path,'w') as f:
    f.writelines("service_name,action,method,url\n")
    for dict_content in write_content:
       url = dict_content['url']
       method = dict_content['method']
       action = dict_content['action']
       service_name = dict_content['service_name']
       f.writelines(service_name + ","+ action+","+method + ","+ url+"\n")

def main():
  print("main begin...")
  parse_result = parse_dir(analysis_root_dir)
  print(parse_result)
  write_result_in_file(store_result,parse_result)
  print("main finished...")

if __name__ == '__main__':
  main()

运行结果

main begin...
[{'url': '/rest/webservice/v1/dosomthing', 'method': 'post', 'action': 'create', 'service_name': 'WebSubService'}, {'url': '/rest/webservice/v1/dosomthing', 'method': 'post', 'action': 'create', 'service_name': 'WebSubService01'}, {'url': '/rest/webservice/v1/dosomthing', 'method': 'post', 'action': 'create', 'service_name': 'WebSubService02'}, {'url': '/rest/webservice/v1/dosomthing', 'method': 'post', 'action': 'create', 'service_name': 'WebSubService03'}, {'url': '/rest/webservice/v1/dosomthing', 'method': 'post', 'action': 'create', 'service_name': 'WebSubService04'}, {'url': '/rest/webservice/v1/dosomthing', 'method': 'post', 'action': 'create', 'service_name': 'WebSubService05'}]
main finished...

目录结构

json file内容

{
 "url":"/rest/webservice/v1/dosomthing",
 "method":"post",
 "action":"create"
}

以上这篇Python遍历文件夹 处理json文件的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python模块之paramiko实例代码
Jan 31 Python
Python lambda函数基本用法实例分析
Mar 16 Python
pytorch 数据集图片显示方法
Jul 26 Python
python按照多个条件排序的方法
Feb 08 Python
python3使用matplotlib绘制散点图
Mar 19 Python
Python笔记之代理模式
Nov 20 Python
使用Python的datetime库处理时间(RPA流程)
Nov 24 Python
pytorch制作自己的LMDB数据操作示例
Dec 18 Python
详解Python 循环嵌套
Jul 09 Python
利用PyQt5+Matplotlib 绘制静态/动态图的实现代码
Jul 13 Python
Python性能测试工具Locust安装及使用
Dec 01 Python
python 统计list中各个元素出现的次数的几种方法
Feb 20 Python
Python多线程原理与用法实例剖析
Jan 22 #Python
python解析含有重复key的json方法
Jan 22 #Python
Python设计模式之简单工厂模式实例详解
Jan 22 #Python
对python字典过滤条件的实例详解
Jan 22 #Python
python实现淘宝秒杀脚本
Jun 23 #Python
python实现网页自动签到功能
Jan 21 #Python
python实现桌面壁纸切换功能
Jan 21 #Python
You might like
提升PHP速度全攻略
2006/10/09 PHP
CI框架中通过hook的方式实现简单的权限控制
2015/01/07 PHP
PHP+MySQL插入操作实例
2015/01/21 PHP
PHP微信API接口类
2016/08/22 PHP
PHP实现对xml的增删改查操作案例分析
2017/05/19 PHP
laravel实现批量更新多条记录的方法示例
2017/10/22 PHP
PHP实现简易图形计算器
2020/08/28 PHP
ie 调试javascript的工具
2009/04/29 Javascript
jQuery 技巧大全(新手入门篇)
2009/05/12 Javascript
深入理解Javascript里的依赖注入
2014/03/19 Javascript
了不起的node.js读书笔记之例程分析
2014/12/22 Javascript
jQuery实现转动随机数抽奖效果的方法
2015/05/21 Javascript
jQuery三级下拉列表导航菜单代码分享
2020/04/15 Javascript
Javascript之Number对象介绍
2016/06/07 Javascript
JavaScript简单获取页面图片原始尺寸的方法
2016/06/21 Javascript
jquery实现上传文件大小类型的验证例子(推荐)
2016/06/25 Javascript
详解网站中图片日常使用以及优化手法
2017/01/09 Javascript
原生js轮播(仿慕课网)
2017/02/15 Javascript
jQuery使用unlock.js插件实现滑动解锁
2017/04/04 jQuery
Angular客户端请求Rest服务跨域问题的解决方法
2017/09/19 Javascript
浅谈JsonObject中的key-value数据解析排序问题
2017/12/06 Javascript
Angular 封装并发布组件的方法示例
2018/04/19 Javascript
Element PageHeader页头的使用方法
2020/07/26 Javascript
教你用Python脚本快速为iOS10生成图标和截屏
2016/09/22 Python
python中学习K-Means和图片压缩
2017/11/20 Python
浅谈python配置与使用OpenCV踩的一些坑
2018/04/02 Python
Python socket非阻塞模块应用示例
2019/09/12 Python
Python如何合并多个字典或映射
2020/07/24 Python
Python 使用生成器代替线程的方法
2020/08/04 Python
国际礼品店:GiftsnIdeas
2018/05/03 全球购物
俄罗斯极限运动网上商店:Board Shop №1
2020/12/18 全球购物
Linux开机引导的步骤是什么
2015/10/19 面试题
承诺书格式
2014/06/03 职场文书
辣妈辣妹观后感
2015/06/10 职场文书
活动宣传稿范文
2015/07/23 职场文书
分析SQL窗口函数之排名窗口函数
2022/04/21 Oracle