Я хотел бы прочитать несколько входных файлов из папки, выполнить некоторые преобразования, создать папки на лету и записать CSV в соответствующие папки. Дело в том, что у меня есть входной путь, который похож на
Входные файлы \ P1_set1 \ Set1_Folder
Filefilenames = sorted(glob.glob('Input files\P*_set1\*.csv')) for f in filenames: print(f) #This will print the full path print(f[12:]) # This print the folder structure along with filename df_transform = pd.read_csv(f) df_transform = df_transform.drop(['Format 10','Time','Hour'],axis=1) df_transform.to_csv("Output\" + str(f[12:]),index=False)
Hour09.csv - для одного пациента (этот файл содержит показания пациента (P1) на 9-й час)filenames = sorted(glob.glob('Input files\P*_set1\*.csv')) for f in filenames: print(f) #This will print the full path print(f[12:]) # This print the folder structure along with filename df_transform = pd.read_csv(f) df_transform = df_transform.drop(['Format 10','Time','Hour'],axis=1) df_transform.to_csv("Output\" + str(f[12:]),index=False)
Точно так же для каждого пациента есть несколько файлов, и файлы каждого пациента сгруппированы в каждой папке, как показано ниже.
Итак, чтобы прочитать каждый файл, я использую регулярное выражение с подстановочными знаками, как показано ниже в коде
Я уже пробовал использовать пакет glob и могу успешно его прочитать, но столкнулся с проблемой при создании выходных папок и сохранении файлов. Я разбираю строку файла, как показано ниже
f = Входные файлы \ P1_set1 \ Set1_Folder
Filefilenames = sorted(glob.glob('Input files\P*_set1\*.csv')) for f in filenames: print(f) #This will print the full path print(f[12:]) # This print the folder structure along with filename df_transform = pd.read_csv(f) df_transform = df_transform.drop(['Format 10','Time','Hour'],axis=1) df_transform.to_csv("Output\" + str(f[12:]),index=False)
Hour09.csvfilenames = sorted(glob.glob('Input files\P*_set1\*.csv')) for f in filenames: print(f) #This will print the full path print(f[12:]) # This print the folder structure along with filename df_transform = pd.read_csv(f) df_transform = df_transform.drop(['Format 10','Time','Hour'],axis=1) df_transform.to_csv("Output\" + str(f[12:]),index=False)
f [12:] = P1_set1 \ Set1_Folder
Filefilenames = sorted(glob.glob('Input files\P*_set1\*.csv')) for f in filenames: print(f) #This will print the full path print(f[12:]) # This print the folder structure along with filename df_transform = pd.read_csv(f) df_transform = df_transform.drop(['Format 10','Time','Hour'],axis=1) df_transform.to_csv("Output\" + str(f[12:]),index=False)
Hour09.csvfilenames = sorted(glob.glob('Input files\P*_set1\*.csv')) for f in filenames: print(f) #This will print the full path print(f[12:]) # This print the folder structure along with filename df_transform = pd.read_csv(f) df_transform = df_transform.drop(['Format 10','Time','Hour'],axis=1) df_transform.to_csv("Output\" + str(f[12:]),index=False)
filenames = sorted(glob.glob('Input files\P*_set1\*.csv'))
for f in filenames:
print(f) #This will print the full path
print(f[12:]) # This print the folder structure along with filename
df_transform = pd.read_csv(f)
df_transform = df_transform.drop(['Format 10','Time','Hour'],axis=1)
df_transform.to_csv("Output\" + str(f[12:]),index=False)
Я ожидаю, что в выходной папке будут файлы csv, сгруппированные по каждому пациенту в соответствующих папках. На снимке экрана ниже показано, как преобразованные файлы должны быть расположены в выходной папке (та же структура, что и входная папка). Обратите внимание, что папка вывода уже существует (ее легко создать, как вы знаете)