Давайте попробуем 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] }
тогда мы можем просто l oop over словарь и сохраните каждый объект в целевой папке.
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)