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聊天程序实例代码分享
Nov 18 Python
在Python3中使用asyncio库进行快速数据抓取的教程
Apr 02 Python
python脚本实现xls(xlsx)转成csv
Apr 10 Python
Python实现k-means算法
Feb 23 Python
使用Python从零开始撸一个区块链
Mar 14 Python
使用python 打开文件并做匹配处理的实例
Jan 02 Python
python 处理telnet返回的More,以及get想要的那个参数方法
Feb 14 Python
Linux上使用Python统计每天的键盘输入次数
Apr 17 Python
Python 中的 global 标识对变量作用域的影响
Aug 12 Python
sublime3之内网安装python插件Anaconda的流程
Nov 10 Python
Python3.9.0 a1安装pygame出错解决全过程(小结)
Feb 02 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
ThinkPHP表单自动验证实例
2014/10/13 PHP
htm调用JS代码
2007/03/15 Javascript
代码生成器 document.write()
2007/04/15 Javascript
javascript 一些用法小结
2009/09/11 Javascript
JQUERY设置IFRAME的SRC值的代码
2010/11/30 Javascript
js网页侧边随页面滚动广告效果实现
2011/04/14 Javascript
jQuery-1.9.1源码分析系列(十一)DOM操作续之克隆节点
2015/12/01 Javascript
基于MVC方式实现三级联动(JavaScript)
2017/01/23 Javascript
jQuery+ajax读取json数据并按照价格排序示例
2018/03/28 jQuery
JS内部事件机制之单线程原理
2018/07/02 Javascript
微信小程序购物车、父子组件传值及calc的注意事项总结
2018/11/14 Javascript
GOJS+VUE实现流程图效果
2018/12/01 Javascript
JS实现求字符串中出现最多次数的字符和次数示例
2019/07/05 Javascript
JS Generator 函数的含义与用法实例总结
2020/04/08 Javascript
JS继承实现方法及优缺点详解
2020/09/02 Javascript
JS数据类型分类及常用判断方法
2020/11/19 Javascript
[47:42]完美世界DOTA2联赛PWL S2 GXR vs Ink 第一场 11.19
2020/11/20 DOTA
django 自定义用户user模型的三种方法
2014/11/18 Python
星球大战与Python之间的那些事
2016/01/07 Python
python导入csv文件出现SyntaxError问题分析
2017/12/15 Python
Python编程使用*解包和itertools.product()求笛卡尔积的方法
2017/12/18 Python
浅谈Pandas中map, applymap and apply的区别
2018/04/10 Python
基于scrapy的redis安装和配置方法
2018/06/13 Python
对python模块中多个类的用法详解
2019/01/10 Python
Python中zip()函数的简单用法举例
2019/09/02 Python
python GUI库图形界面开发之PyQt5菜单栏控件QMenuBar的详细使用方法与实例
2020/02/28 Python
Django:使用filter的pk进行多值查询操作
2020/07/15 Python
培训主管的岗位职责
2013/11/23 职场文书
大学生最常用的自我评价
2013/12/07 职场文书
趣味活动策划方案
2014/02/08 职场文书
横幅标语大全
2014/06/17 职场文书
纪念九一八事变演讲稿:青少年应树立远大理想
2014/09/14 职场文书
群众路线自查自纠工作情况报告
2014/10/28 职场文书
西双版纳导游词
2015/02/03 职场文书
学校办公室主任岗位职责
2015/04/01 职场文书
Python实现批量将文件复制到新的目录中再修改名称
2022/04/12 Python