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 sqlite3事务处理方法实例分析
Jun 19 Python
详解Python文本操作相关模块
Jun 22 Python
Python调用微信公众平台接口操作示例
Jul 08 Python
使用python读取csv文件快速插入数据库的实例
Jun 21 Python
python批量修改图片后缀的方法(png到jpg)
Oct 25 Python
使用python绘制3维正态分布图的方法
Dec 29 Python
python 图像平移和旋转的实例
Jan 10 Python
python 利用已有Ner模型进行数据清洗合并代码
Dec 24 Python
详解Python的三种拷贝方式
Feb 11 Python
python使用paramiko实现ssh的功能详解
Mar 06 Python
简单的Python人脸识别系统
Jul 14 Python
pytorch __init__、forward与__call__的用法小结
Feb 27 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
一个小型js框架myJSFrame附API使用帮助
2008/06/28 Javascript
javascript 三种方法实现获得和设置以及移除元素属性
2013/03/20 Javascript
jquery $.each 和for怎么跳出循环终止本次循环
2013/09/27 Javascript
javascript读写json示例
2014/04/11 Javascript
a标签跳转到指定div,jquery添加和移除class属性的实现方法
2016/10/10 Javascript
深入理解Commonjs规范及Node模块实现
2017/05/17 Javascript
使用validate.js实现表单数据提交前的验证方法
2018/09/04 Javascript
koa源码中promise的解读
2018/11/13 Javascript
JS/jQuery实现简单的开关灯效果【案例】
2019/02/19 jQuery
深入浅出了解Node.js Streams
2019/05/27 Javascript
产制造追溯系统之通过微信小程序实现移动端报表平台
2019/06/03 Javascript
js设计模式之单例模式原理与用法详解
2019/08/15 Javascript
Django 使用Ajax进行前后台交互的示例讲解
2018/05/28 Python
Python设置在shell脚本中自动补全功能的方法
2018/06/25 Python
pygame游戏之旅 添加游戏界面按键图形
2018/11/20 Python
关于Django ForeignKey 反向查询中filter和_set的效率对比详解
2018/12/15 Python
tensorflow实现读取模型中保存的值 tf.train.NewCheckpointReader
2020/02/10 Python
python利用opencv实现SIFT特征提取与匹配
2020/03/05 Python
Python itertools.product方法代码实例
2020/03/27 Python
使用pth文件添加Python环境变量方式
2020/05/26 Python
keras的load_model实现加载含有参数的自定义模型
2020/06/22 Python
浅谈Keras参数 input_shape、input_dim和input_length用法
2020/06/29 Python
python db类用法说明
2020/07/07 Python
wordpress添加Html5的表单验证required方法小结
2020/08/18 HTML / CSS
伦敦平价潮流珠宝首饰品牌:Astrid & Miyu
2016/10/10 全球购物
Expedia西班牙:预订酒店、机票、旅行和廉价度假套餐
2019/04/10 全球购物
求网格中的黑点分布
2013/11/06 面试题
出国签证在职证明
2014/01/16 职场文书
2014年五四青年节活动方案
2014/03/29 职场文书
汽车转让协议书范本
2014/12/07 职场文书
2014年医务科工作总结
2014/12/18 职场文书
公司文体活动总结
2015/05/07 职场文书
老员工辞职信范文
2015/05/12 职场文书
法定代表人免职证明
2015/06/24 职场文书
2016年小学教师政治学习心得体会
2016/01/23 职场文书
如何利用python实现Simhash算法
2022/06/28 Python