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使用str & repr转换字符串
Oct 13 Python
利用matplotlib+numpy绘制多种绘图的方法实例
May 03 Python
Python爬虫之模拟知乎登录的方法教程
May 25 Python
python之super的使用小结
Aug 13 Python
Python3中编码与解码之Unicode与bytes的讲解
Feb 28 Python
python使用flask与js进行前后台交互的例子
Jul 19 Python
Anaconda之conda常用命令介绍(安装、更新、删除)
Oct 06 Python
python利用JMeter测试Tornado的多线程
Jan 12 Python
python实现遍历文件夹图片并重命名
Mar 23 Python
解决pycharm编辑区显示yaml文件层级结构遇中文乱码问题
Apr 27 Python
Python爬虫框架之Scrapy中Spider的用法
Jun 28 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 服务器配置(使用Apache及IIS两种方法)
2009/06/01 PHP
PHP企业级应用之常见缓存技术篇
2011/01/27 PHP
PHP获取中英混合字符串长度的方法
2014/06/07 PHP
PHP中对数组的一些常用的增、删、插操作函数总结
2015/11/27 PHP
Yii2框架RESTful API 格式化响应,授权认证和速率限制三部分详解
2016/11/10 PHP
php实现留言板功能(会话控制)
2017/05/23 PHP
利用PHP访问MySql数据库的逻辑操作以及增删改查的实例讲解
2017/08/30 PHP
PHP简单实现模拟登陆功能示例
2017/09/15 PHP
PHP INT类型在内存中占字节详解
2019/07/20 PHP
js中判断文本框是否为空的两种方法
2011/07/31 Javascript
JavaScript中switch判断容易犯错的一个细节
2014/08/27 Javascript
javascript匀速动画和缓冲动画详解
2016/10/20 Javascript
angular第三方包开发整理(小结)
2018/04/19 Javascript
angularjs通过过滤器返回超链接的方法
2018/10/26 Javascript
JavaScript 判断iPhone X Series机型的方法
2019/01/28 Javascript
Nodejs中的require函数的具体使用方法
2019/04/02 NodeJs
详解Vue中的scoped及穿透方法
2019/04/18 Javascript
layui lay-verify form表单自定义验证规则详解
2019/09/18 Javascript
vue动态禁用控件绑定disable的例子
2019/10/28 Javascript
es6函数之尾调用优化实例分析
2020/04/25 Javascript
基于vue和bootstrap实现简单留言板功能
2020/05/30 Javascript
微信小程序实现单个或多个倒计时功能
2020/11/01 Javascript
跟老齐学Python之有容乃大的list(2)
2014/09/15 Python
详解字典树Trie结构及其Python代码实现
2016/06/03 Python
Python用 KNN 进行验证码识别的实现方法
2018/02/06 Python
python保存数据到本地文件的方法
2018/06/23 Python
Python3爬虫使用Fidder实现APP爬取示例
2018/11/27 Python
对Python的多进程锁的使用方法详解
2019/02/18 Python
python实现静态服务器
2019/09/05 Python
如何对python的字典进行排序
2020/06/19 Python
澳大利亚优惠网站:Deals.com.au
2019/07/02 全球购物
市委召开党的群众路线教育实践活动总结大会报告
2014/10/21 职场文书
2014年政风行风工作总结
2014/11/22 职场文书
世界名著读书笔记
2015/06/25 职场文书
R9700摩机记
2022/04/05 无线电
Python利用capstone实现反汇编
2022/04/06 Python