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文件读写操作与linux shell变量命令交互执行的方法
Jan 14 Python
使用Python的PEAK来适配协议的教程
Apr 14 Python
Python实现小数转化为百分数的格式化输出方法示例
Sep 20 Python
Python实现字典的遍历与排序功能示例
Dec 23 Python
对python中raw_input()和input()的用法详解
Apr 22 Python
python消费kafka数据批量插入到es的方法
Dec 27 Python
Python3多线程基础知识点
Feb 19 Python
python elasticsearch从创建索引到写入数据的全过程
Aug 04 Python
Pytorch反向求导更新网络参数的方法
Aug 17 Python
python异常处理、自定义异常、断言原理与用法分析
Mar 23 Python
一篇文章教你用python画动态爱心表白
Nov 22 Python
解决Pytorch半精度浮点型网络训练的问题
May 24 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 命名空间实例说明
2011/01/27 PHP
PHP中MVC模式的模板引擎开发经验分享
2011/03/23 PHP
解析PHP中的正则表达式以及模式匹配
2013/06/19 PHP
PHP加密解密函数详解
2015/10/28 PHP
40个新鲜出炉的jQuery 插件和免费教程[上]
2012/07/24 Javascript
jQuery中filter()方法用法实例
2015/01/06 Javascript
流量统计器如何鉴别C#:WebBrowser中伪造referer
2015/01/07 Javascript
浅谈Jquery为元素绑定事件
2015/04/27 Javascript
Javascript基础_标记文字的实现方法
2016/06/14 Javascript
javascript自执行函数
2017/02/10 Javascript
基于Angular.js实现的触摸滑动动画实例代码
2017/02/19 Javascript
深入理解Node中的buffer模块
2017/06/03 Javascript
JavaScript中的return布尔值的用法和原理解析
2017/08/14 Javascript
基于VUE移动音乐WEBAPP跨域请求失败的解决方法
2018/01/16 Javascript
对vue.js中this.$emit的深入理解
2018/02/23 Javascript
vue中引用swiper轮播插件的教程详解
2018/08/16 Javascript
OpenLayer3自定义测量控件MeasureTool
2020/09/28 Javascript
python计算auc指标实例
2017/07/13 Python
浅谈python jieba分词模块的基本用法
2017/11/09 Python
利用Python暴力破解zip文件口令的方法详解
2017/12/21 Python
python 处理dataframe中的时间字段方法
2018/04/10 Python
python实现监控某个服务 服务崩溃即发送邮件报告
2018/06/21 Python
对Python实现累加函数的方法详解
2019/01/23 Python
Python函数式编程指南:对生成器全面讲解
2019/11/19 Python
python检查目录文件权限并修改目录文件权限的操作
2020/03/11 Python
美国农场商店:Blain’s Farm & Fleet
2020/01/17 全球购物
Ruby中的保护方法和私有方法与一般面向对象程序设计语言的一样吗
2013/05/01 面试题
创业计划书中包含的9个方面
2013/12/26 职场文书
办公室主任岗位承诺书
2014/05/29 职场文书
农村党员一句话承诺
2014/05/30 职场文书
村干部四风问题整改措施
2014/09/30 职场文书
乱丢垃圾袋检讨书
2014/10/08 职场文书
喋血孤城观后感
2015/06/08 职场文书
Win11绿屏怎么办?Win11绿屏死机的解决方法
2021/11/21 数码科技
Python Pandas 删除列操作
2022/03/16 Python
java高级用法JNA强大的Memory和Pointer
2022/04/19 Java/Android