有两种做法: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文件的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持小牛知识库。
问题内容: 我试图遍历并拾取目录中的文件,但是在实现它时遇到了一些麻烦。如何提取多个文件,然后将它们移动到另一个文件夹? 问题答案: 带回调的旧答案 您想要使用fs.readdir函数获取目录内容,并使用fs.rename函数实际执行重命名。如果您 需要 等待它们完成之后再运行代码,则这两个函数都具有同步版本。 我写了一个快速脚本来完成您所描述的。 在我的本地机器上测试。 更新:fs.promis
问题内容: 我试图在PowerShell中遍历以下JSON文件。 如果没有专门命名顶部标签(例如17443和17444),由于我事先不知道它们的名称,就无法找到遍历数据的方法。 我想为所有记录输出标签3、4和5(标题,名字,姓氏)。 我该怎么做? 我可以使用下面的代码访问数据,但我想避免放入17443、17444等。 问题答案: 在PowerShell 3.0及更高版本中(请参阅:确定已安装的Po
本文向大家介绍python遍历文件夹,指定遍历深度与忽略目录的方法,包括了python遍历文件夹,指定遍历深度与忽略目录的方法的使用技巧和注意事项,需要的朋友参考一下 背景 需要在文件夹中搜索某一文件,找到后返回此文件所在目录。用最常规的os.listdir()方式实现了一版,但执行时报错:递归超过最大深度。于是自己添加了点功能,之所有写此函数是为了让它适应不同的项目,因为有项目要找的文件在第一层
我试图做一个Python代码,遍历父文件夹中的所有子文件夹,并将子文件夹内容移动到父文件夹。我在python中使用os.walk函数,但它也一直选择父文件夹中的文件。有没有办法解决这个问题...
本文向大家介绍Python实现递归遍历文件夹并删除文件,包括了Python实现递归遍历文件夹并删除文件的使用技巧和注意事项,需要的朋友参考一下 思路: 遍历文件夹下面的文件夹 如果文件夹名称等于".svn",则修改文件夹的属性(因为".svn"的文件都是只读的,你不能直接删除) 删除此文件夹 如果文件夹名称不等于".svn",则递归上面的方法 Python的实现 代码 要点: Walk在os模块下
本文向大家介绍python中遍历文件的3个方法,包括了python中遍历文件的3个方法的使用技巧和注意事项,需要的朋友参考一下 今天写一个在windows下批量修改文件名的python脚本,用到文件的遍历。用python进行文件遍历有多种方法,这里列举并说明一下。 os.path.walk() 这是一个传统的用法。 walk(root,callable,args)方法有三个参数:要遍历的目录,回调