SSM*_*SMK 5 glob writefile dataframe create-directory python-3.x
我想从一个文件夹中读取几个输入文件,执行一些转换,即时创建文件夹,并将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)
Run Code Online (Sandbox Code Playgroud)
我希望输出文件夹中包含csv文件,这些文件按每位患者的各自文件夹分组。下面的屏幕截图显示了转换后的文件应如何排列在输出文件夹(与输入文件夹相同的结构)中。请注意,“输出”文件夹已经存在(很容易创建一个您知道的文件夹)

小智 3
因此,要读取文件夹中的文件,请使用 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)
Run Code Online (Sandbox Code Playgroud)
现在,而不是用户 f[12:] 将 x 分割到 for 循环中,例如
file_name = x.split('/')[-1] #if you want filename.csv
Run Code Online (Sandbox Code Playgroud)
让我知道这是否是您想要的