1 回答
TA贡献1770条经验 获得超3个赞
让我们尝试pathlib从defaultdict标准库
我们可以构建一个子文件夹字典作为键,所有文件作为列表中的值。
from pathlib import Path
from collections import defaultdict
your_path = 'target_directory'
file_dict = defaultdict(list)
for each_file in Path(p).rglob('*.csv'): # change this to `.json`
file_dict[each_file.parent].append(each_file)
print(file_dict)
你的字典将是一个 Pathlib 对象的列表,它与这个有点相似,关键是子文件夹(我刚刚在这里打印了名称)
{Notebooks : [test.csv,
test_file.csv,
test_file_edited.csv] ,
test_csv : [File20200610.csv,
File20201012 - Copy.csv,
File20201012.csv] }
然后我们可以遍历字典并将每个对象保存到目标文件夹中。
for each_sub_folder,files in file_dict.items():
dfs = []
for each_file in files:
j = pd.read_json(each_file) #your read method.
dfs.append(j) # append to list.
df = pd.concat(dfs)
df.to_csv(Path(target_path).joinpath(each_sub_folder.name + '.csv'),index=False)
添加回答
举报