您的位置:首页 > 编程语言 > Python开发

Python遍历文件夹 处理json文件

2017-08-12 17:05 302 查看
有两种做法: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 文本操作