首页 > 解决方案 > 如何将文件夹1和文件夹2中的所有jsons文件复制到第三个?

问题描述

我在两个文件夹中有很多 json 需要添加在一起的 json 名称是相同的。它们必须像文件夹 1/1.json 文件夹 2/2.json 一样添加。因为当前脚本只是按名称添加它们。

folder1/
   1.json
   2.json

folder2/
   1.json
   2.json

folder3/
  1.json(info from folder1 and folder2)

我的脚本按名称添加它们,但需要按文件夹添加

import json
    
    with open("folder1") as fin1:
        data1 = json.load(fin1)
    with open("folder2") as fin2:
        data2 = json.load(fin2)
    new_json = [data1,data2]
    with open("folder3", "w") as fin3:
        json.dump(new_json, fin3)

标签: pythonjsonpython-3.x

解决方案


假设 'folder1'、'folder2' 和 'folder3' 是相关目录的路径,则:

from pathlib import Path
import json

for path in Path('folder1').glob('*.json'):
    dir, file_name = path.parent, path.name
    with path.open() as f1, open('folder2/' + file_name) as f2, open('folder3/' + file_name, 'w') as f3:
        data1 = json.load(f1)
        data2 = json.load(f2)
        # do processing
        json.dump(new_json, f3)

根据文件内容,您可能需要在调用中添加encoding参数(例如encoding='utf-8') 。open


推荐阅读