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类装饰器用法实例
Jun 04 Python
从头学Python之编写可执行的.py文件
Nov 28 Python
PyQt5 pyqt多线程操作入门
May 05 Python
Python3.6通过自带的urllib通过get或post方法请求url的实例
May 10 Python
python pandas库的安装和创建
Jan 10 Python
Python基本socket通信控制操作示例
Jan 30 Python
详解python运行三种方式
May 13 Python
Django 删除upload_to文件的步骤
Mar 30 Python
Python数据可视化实现漏斗图过程图解
Jul 20 Python
python操作ini类型配置文件的实例教程
Oct 30 Python
selenium与xpath之获取指定位置的元素的实现
Jan 26 Python
python 提取html文本的方法
May 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
php 购物车的例子
2009/05/04 PHP
PHP Socket 编程
2010/04/09 PHP
php实现简单洗牌算法
2013/06/18 PHP
详解Grunt插件之LiveReload实现页面自动刷新(两种方案)
2015/07/31 PHP
Prototype中dom对象方法汇总
2008/09/17 Javascript
javascript 日期时间函数(经典+完善+实用)
2009/05/27 Javascript
jquery tools之tabs 选项卡/页签
2009/07/25 Javascript
js解析与序列化json数据(一)json.stringify()的基本用法
2013/02/01 Javascript
完美兼容各大浏览器获取HTTP_REFERER方法总结
2014/06/24 Javascript
js计算任意值之间随机数的方法
2015/01/16 Javascript
JavaScript插件化开发教程 (二)
2015/01/27 Javascript
jQuery插件expander实现图片翻转特效
2015/05/21 Javascript
原生JavaScript实现异步多文件上传
2015/12/02 Javascript
基于JS实现新闻列表无缝向上滚动实例代码
2016/01/22 Javascript
理解JavaScript事件对象
2016/01/25 Javascript
jQuery增加、删除及修改select option的方法
2016/08/19 Javascript
JS实现简单的tab切换选项卡效果
2016/09/21 Javascript
bootstrap的3级菜单样式,支持母版页保留打开状态实现方法
2016/11/10 Javascript
Angular工具方法学习
2016/12/26 Javascript
Vue开发过程中遇到的疑惑知识点总结
2017/01/20 Javascript
Vue 进阶教程之v-model详解
2017/05/06 Javascript
微信小程序导航栏滑动定位功能示例(实现CSS3的positionsticky效果)
2019/01/24 Javascript
Python实现快速多线程ping的方法
2015/07/15 Python
Python微信企业号开发之回调模式接收微信端客户端发送消息及被动返回消息示例
2017/08/21 Python
Python面向对象之Web静态服务器
2019/09/03 Python
详解python播放音频的三种方法
2019/09/23 Python
Django中自定义查询对象的具体使用
2019/10/13 Python
tensorflow之获取tensor的shape作为max_pool的ksize实例
2020/01/04 Python
python实现b站直播自动发送弹幕功能
2021/02/20 Python
德国化妆品和天然化妆品网上商店:kosmetikfuchs.de
2017/06/09 全球购物
英国大码女性时装零售商:Evans
2018/08/29 全球购物
物理教师自荐信范文
2013/12/28 职场文书
员工安全生产承诺书
2014/05/22 职场文书
行政部经理助理岗位职责
2014/06/15 职场文书
使用pycharm运行flask应用程序的详细教程
2021/06/07 Python
VS2019连接MySQL数据库的过程及常见问题总结
2021/11/27 MySQL