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 简易计算器程序,代码就几行
Aug 29 Python
Python内置函数bin() oct()等实现进制转换
Dec 30 Python
python类型强制转换long to int的代码
Feb 10 Python
Python程序员面试题 你必须提前准备!(答案及解析)
Jan 23 Python
Python RabbitMQ消息队列实现rpc
May 30 Python
Python使用re模块正则提取字符串中括号内的内容示例
Jun 01 Python
Python socket实现多对多全双工通信的方法
Feb 13 Python
PYQT5设置textEdit自动滚屏的方法
Jun 14 Python
Python3.7基于hashlib和Crypto实现加签验签功能(实例代码)
Dec 04 Python
解决Python 函数声明先后顺序出现的问题
Sep 02 Python
教你用python控制安卓手机
May 13 Python
给numpy.array增加维度的超简单方法
Jun 02 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自定义函数返回多个值
2006/11/26 PHP
PHP禁止个别IP访问网站
2013/10/30 PHP
PHP实现单文件、多个单文件、多文件上传函数的封装示例
2019/09/02 PHP
Laravel-添加后台模板AdminLte的实现方法
2019/10/08 PHP
ExtJs之带图片的下拉列表框插件
2010/03/04 Javascript
基于jquery1.4.2的仿flash超炫焦点图播放效果
2010/04/20 Javascript
Js 弹出框口并返回值的两种常用方法
2010/12/30 Javascript
JQuery操作Select的Options的Bug(IE8兼容性视图模式)
2013/04/21 Javascript
禁止选中文字兼容IE、Chrome、FF等
2013/09/04 Javascript
JavaScript对象之深度克隆介绍
2014/12/08 Javascript
jQuery使用cookie与json简单实现购物车功能
2016/04/15 Javascript
Javascript类型系统之String字符串类型详解
2016/06/21 Javascript
jquery计算出left和top,让一个div水平垂直居中的简单实例
2016/07/13 Javascript
jQuery实现ajax的叠加和停止(终止ajax请求)
2016/08/08 Javascript
javascript中setAttribute兼容性用法分析
2016/12/12 Javascript
Angular.js基础学习之初始化
2017/03/10 Javascript
JavaScript条件判断_动力节点Java学院整理
2017/06/26 Javascript
Vue自定义指令详解
2017/07/28 Javascript
jQuery中过滤器的基本用法示例
2017/10/11 jQuery
微信小程序下拉刷新PullDownRefresh的使用方法
2018/11/29 Javascript
用VsCode编辑TypeScript的实现方法
2020/05/07 Javascript
[32:17]完美世界DOTA2联赛循环赛LBZS vs Forest第二场 10月30日
2020/10/31 DOTA
python采集博客中上传的QQ截图文件
2014/07/18 Python
探寻python多线程ctrl+c退出问题解决方案
2014/10/23 Python
跟老齐学Python之私有函数和专有方法
2014/10/24 Python
在python3.5中使用OpenCV的实例讲解
2018/04/02 Python
Python wxpython模块响应鼠标拖动事件操作示例
2018/08/23 Python
python和c语言的主要区别总结
2019/07/07 Python
详解Django3中直接添加Websockets方式
2020/02/12 Python
新浪网技术部笔试题
2016/08/26 面试题
建筑施工员岗位职责
2013/11/26 职场文书
旷课检讨书500字
2014/10/14 职场文书
2016年五一促销广告语
2016/01/28 职场文书
学校趣味运动会开幕词
2016/03/04 职场文书
多人盗宝《绿林侠盗》第三赛季4.5上线 跨平台实装
2022/04/03 其他游戏
PostgreSQL数据库去除重复数据和运算符的基本查询操作
2022/04/12 PostgreSQL