动态创建文件夹并将CSV文件写入该文件夹

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)

让我知道这是否是您想要的