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调用短信猫控件实现发短信功能实例
Jul 04 Python
python之yield表达式学习
Sep 02 Python
Python中的进程分支fork和exec详解
Apr 11 Python
python 读写txt文件 json文件的实现方法
Oct 22 Python
Python实现矩阵转置的方法分析
Nov 24 Python
浅谈python中字典append 到list 后值的改变问题
May 04 Python
python实现判断一个字符串是否是合法IP地址的示例
Jun 04 Python
Python实现的读取/更改/写入xml文件操作示例
Aug 30 Python
Python多进程编程常用方法解析
Mar 26 Python
PyQt5实现简单的计算器
May 30 Python
python如何查看网页代码
Jun 07 Python
python 基于卡方值分箱算法的实现示例
Jul 17 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
Home Coffee Roasting
2021/03/03 咖啡文化
php cookie中点号(句号)自动转为下划线问题
2014/10/21 PHP
Ext JS Grid在IE6 下宽度的问题解决方法
2009/02/15 Javascript
打造基于jQuery的高性能TreeView(asp.net)
2011/02/23 Javascript
JavaScript面向对象设计二 构造函数模式
2011/12/20 Javascript
JS 实现导航栏悬停效果(续2)
2013/09/24 Javascript
js的window.showModalDialog及window.open用法实例分析
2015/01/29 Javascript
jQuery实现仿美橙互联两级导航菜单的方法
2015/03/09 Javascript
jQuery实现textarea自动增长宽高的方法
2015/12/18 Javascript
jQuery中bind(),live(),delegate(),on()绑定事件方法实例详解
2016/01/19 Javascript
用js实现放大镜的效果的简单实例
2016/05/23 Javascript
jQuery实现带遮罩层效果的blockUI弹出层示例【附demo源码下载】
2016/09/14 Javascript
vue.js指令v-for使用及索引获取
2016/11/03 Javascript
vue mintui-Loadmore结合实现下拉刷新和上拉加载示例
2017/10/12 Javascript
Vue.set()实现数据动态响应的方法
2018/02/07 Javascript
jQuery实现checkbox全选功能完整实例
2018/07/12 jQuery
JavaScript设计模式之模板方法模式原理与用法示例
2018/08/07 Javascript
JavaScript实现Excel表格效果
2020/02/07 Javascript
Vue2.0 ES6语法降级ES5的操作
2020/10/30 Javascript
python实现数通设备端口监控示例
2014/04/02 Python
在Linux下使用Python的matplotlib绘制数据图的教程
2015/06/11 Python
python中reload(module)的用法示例详解
2017/09/15 Python
python好玩的项目—色情图片识别代码分享
2017/11/07 Python
Python Gitlab Api 使用方法
2019/08/28 Python
Python virtualenv虚拟环境实现过程解析
2020/04/18 Python
Python 实现一行输入多个数字(用空格隔开)
2020/04/29 Python
Claire’s法国:时尚配饰、美容、珠宝、头发
2021/01/16 全球购物
新西兰最大的连锁超市:Countdown
2020/06/04 全球购物
办公室文员工作自我评价
2013/12/01 职场文书
银行营业厅大堂经理岗位职责
2014/01/06 职场文书
青年文明号复核材料
2014/02/11 职场文书
学校三节实施方案
2014/06/09 职场文书
开幕式邀请函
2015/01/31 职场文书
超市员工管理制度
2015/08/06 职场文书
Debian11 Xfce终端光标的颜色怎么设置?
2022/08/14 数码科技
uniapp开发打包多端应用完整方法指南
2022/12/24 Javascript