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查看zip包中文件及大小的方法
Jul 09 Python
Python中列表和元组的使用方法和区别详解
Dec 30 Python
Python操作json的方法实例分析
Dec 06 Python
python 实现分页显示从es中获取的数据方法
Dec 26 Python
python卸载后再次安装遇到的问题解决
Jul 10 Python
python中tkinter的应用:修改字体的实例讲解
Jul 17 Python
python下PyGame的下载与安装过程及遇到问题
Aug 04 Python
PyTorch中 tensor.detach() 和 tensor.data 的区别详解
Jan 06 Python
python颜色随机生成器的实例代码
Jan 10 Python
Python matplotlib绘制图形实例(包括点,曲线,注释和箭头)
Apr 17 Python
python函数调用,循环,列表复制实例
May 03 Python
OpenCV图像变换之傅里叶变换的一些应用
Jul 26 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字符串过滤与替换小结
2015/01/26 PHP
支付宝接口开发集成支付环境小结
2015/03/17 PHP
使用JavaScript创建新样式表和新样式规则
2016/06/14 PHP
thinkPHP框架可添加js事件的分页类customPage.class.php完整实例
2017/03/16 PHP
php 中phar包的使用教程详解
2018/10/26 PHP
php-fpm中max_children的配置
2019/03/15 PHP
JS 屏蔽键盘不可用与鼠标右键不可用的方法
2013/11/18 Javascript
关于jQuery中的each方法(jQuery到底干了什么)
2014/03/05 Javascript
node.js中的fs.mkdirSync方法使用说明
2014/12/17 Javascript
jQuery功能函数详解
2015/02/01 Javascript
Js控制滑轮左右滑动实例
2015/02/13 Javascript
Angularjs制作简单的路由功能demo
2015/04/14 Javascript
jQuery实现时尚漂亮的弹出式对话框实例
2015/08/07 Javascript
Javascript设计模式之观察者模式(推荐)
2016/03/29 Javascript
ES6学习之变量的两种命名方法示例
2017/07/18 Javascript
laydate日历控件使用方法详解
2017/11/20 Javascript
浅谈VUE监听窗口变化事件的问题
2018/02/24 Javascript
layui 表格操作列按钮动态显示的实现方法
2019/09/06 Javascript
js刷新页面location.reload()用法详解
2019/12/09 Javascript
vue 使用vant插件做tabs切换和无限加载功能的实现
2020/11/04 Javascript
跟老齐学Python之深入变量和引用对象
2014/09/24 Python
django通过ajax发起请求返回JSON格式数据的方法
2015/06/04 Python
Python编程二分法实现冒泡算法+快速排序代码示例
2018/01/15 Python
Pandas 同元素多列去重的实例
2018/07/03 Python
Python 迭代,for...in遍历,迭代原理与应用示例
2019/10/12 Python
Tensorflow累加的实现案例
2020/02/05 Python
python多进程使用函数封装实例
2020/05/02 Python
使用tensorflow实现VGG网络,训练mnist数据集方式
2020/05/26 Python
美国婴儿服装购物网站:Gerber Childrenswear
2020/05/06 全球购物
乔迁宴答谢词
2014/01/21 职场文书
专业求职信撰写要诀
2014/02/18 职场文书
2014庆六一活动方案
2014/03/02 职场文书
学生不参加考试检讨书
2015/02/19 职场文书
解决numpy和torch数据类型转化的问题
2021/05/23 Python
PyTorch 如何自动计算梯度
2021/05/23 Python
详解flex:1什么意思
2022/07/23 HTML / CSS