我想从一个文件夹中读取几个输入文件,执行一些转换,即时创建文件夹,并将csv写入相应的文件夹。关键是我有输入路径,就像
“输入文件\ P1_set1 \ Set1_Folder_1_File_1_Hour09.csv”-用于单个患者(此文件包含第9小时的患者(P1)读数)
类似地,每个患者有多个文件,每个患者文件被分组在每个文件夹下,如下所示
因此,要读取每个文件,我正在使用通配符正则表达式,如下代码所示
我已经尝试使用glob包,并且能够成功读取它,但是在创建输出文件夹和保存文件时遇到问题。我正在解析文件字符串,如下所示
f =“输入文件\ P1_set1 \ Set1_Folder_1_File_1_Hour09.csv”
f [12:] =“ P1_set1 \ Set1_Folder_1_File_1_Hour09.csv”
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文件,这些文件按每位患者的各自文件夹分组。下面的屏幕截图显示了转换后的文件应如何排列在输出文件夹(与输入文件夹相同的结构)中。请注意,“输出”文件夹已经存在(很容易创建一个您知道的文件夹)
答案 0 :(得分:2)
因此要使用os库读取文件夹中的文件,您可以
import os
folder_path = "path_to_your_folder"
dir = os.listdir(folder_path)
for x in dir:
df_transform = pd.read_csv(f)
df_transform = df_transform.drop(['Format 10','Time','Hour'],axis=1)
if os.path.isdir("/home/el"):
df_transform.to_csv("Output/" + str(f[12:]),index=False)
else:
os.makedirs(folder_path+"/")
df_transform.to_csv("Output/" + str(f[12:]),index=False)
现在代替用户f [12:]将x拆分为for循环
file_name = x.split('/')[-1] #if you want filename.csv
让我知道这是否是您想要的