如何将此代码应用于多个csv?

时间:2019-03-07 14:02:21

标签: python pandas

有人可以建议我如何将此代码应用于一个文件夹中的多个csv吗?然后,将修改后的csv保存到另一个文件夹,并分别保存?简而言之,我需要使其自动化。

我需要自动加载csv文件,执行代码,保存新修改的csv文件,然后将其重复到文件夹中的下一个csv文件。

answer.begin() + getNumber(answer, nums[i])

代码本身正常工作。谢谢您的建议。

3 个答案:

答案 0 :(得分:0)

您要使用os.listdir()查找目录的内容,然后在新函数中参数化文件路径。然后,您可以遍历通过os.walk()检索的目录列表,并为每个目录运行该功能。

import os

def run(file_directory):

    filelist = os.listdir(file_directory)

    for path in filelist:

         df = pd.read_csv(path,delimiter=";")

         # etc.

         df.to_csv(os.path.join(file_directory, 'output.csv'))

如果需要创建新目录,可以使用os.mkdir(newpath)

答案 1 :(得分:0)

最简单的方法是使用glob。只需根据您的要求提供folder_path和output_path,然后使用下面的示例代码。我对代码进行了注释,以帮助您理解代码。

import os
import glob

folder_path = 'path/to/folder/' # path to folder containing .csv files
output_path = 'path/to/output/folder/' # path to output folder

for file in glob.glob(folder_path + '*.csv'): # only loads .csv files from the folder
    df = pd.read_csv(file, delimiter=";") # read .csv file

    # Do something

    df.to_csv(output_path + 'modified_' + str(os.path.basename(file)), encoding='utf-8', index=False) # saves modified .csv file to output_path

答案 2 :(得分:0)

您还能建议如何对函数进行参数化吗?