У меня есть CSV-файлы с именем «toyexample
» в нескольких подпапках. Я хочу добавить все CSV-файлы с именем toyexample
во все подпапки.
Пути к папкам следующие:
C:/Users/xxx/Dropbox/College/Project1/2005Q1/
C:/Users/xxx/Dropbox/College/Project1/2005Q2/
.....
.....
C:/Users/xxx/Dropbox/College/Project1/2015Q3/
C:/Users/xxx/Dropbox/College/Project1/2015Q4/
Следовательно, вложенные папки пути варьируются от 2005Q1 до 2015Q4.
В каждой из этих подпапок есть много CSV-файлов, но я хочу извлечь только тот, который называется toyexample
.
Я пытаюсь сделать следующее:
import pandas as pd
import os
path = ["subfolder1", "folder2", ....."subfolder44"]
appended_file = []
subpaths = os.listdir(path)
for pa in subpaths:
df = pd.read_csv("toyexample")
appended_file.append(df)
Мне было интересно, как автоматизировать процесс чтения файлов из стольких разных каталогов вместо того, чтобы вводить их вручную. Мне также нужна помощь с чтением файлов (возможно, с os.path_join()
) и добавлением их в один фрейм данных df
Используйте glob
с recursive=True
, чтобы найти пути ко всем файлам с именем toyexample.csv
в вашем файловом дереве.
glob.glob("**/toyexample.csv", recursive=True)
Дает вам список путей, начинающихся в вашем текущем рабочем каталоге, для каждого toyexample.csv
, который вы затем можете обработать.
с помощью пользователя ChuHo я смог выяснить следующее:
import glob
import os
import pandas as pd
paths = glob.glob("CC:/Users/xxx/Dropbox/College/Project1/**/toyexample.csv", recursive=True)
appended_file = []
for i in paths:
df = pd.read_csv(i)
appended_file.append(df)
combined=pd.concat(appended_file, axis=0, ignore_index=True, sort=False)