更改同一文件夹中多个 CSV 文件的分隔符并将它们写入新文件夹

Change the delimiter in multiple CSV files from same folder and write them into a new folder

我是 python 的新手程序员,我正在尝试从一个文件夹中读取多个 csv 文件,将所有 csv 文件的分隔符替换为 'tab' 分隔符,然后将这些文件输出到一个带有替换分隔符的新文件夹。到目前为止,我还停留在开头。 这是我开始使用的代码,它适用于单个文件。但是我无法在同一个文件夹中处理多个文件。

print("\nWrite same CSV File with different string(Replace ',' with tab delimiter)")

with open('Names.csv','r') as csv_file:
    csv_reader = csv.reader(csv_file)

    with open('Names_new.csv', 'w') as new_file:
        csv_writer = csv.writer(new_file, delimiter = '\t', lineterminator='\r')

        for line in csv_reader:
            csv_writer.writerow(line)

有人可以指出一些提示吗? 提前致谢!

我认为您问题中的代码没有达到您的要求。但是,这里介绍如何将其嵌入到更多代码中,这些代码将从指定文件夹中读取 csv 文件进行处理。

  • listdir 获取 input_folder 并生成该文件夹中所有文件的列表。
  • 我遍历该列表并仅处理那些名称以“.csv”结尾的文件。

from os import listdir
import csv

input_folder = 'catalyst/'

for file_name in listdir(input_folder):
    if file_name.endswith('.csv'):
        print ('---> processing input file: ', file_name)
        with open(input_folder + file_name,'r') as csv_file:
            csv_reader = csv.reader(csv_file)
            out_file_name = file_name[:-3]+'_new.csv'
            print ('   creating', out_file_name )
            with open(input_folder + out_file_name, 'w') as new_file:
                csv_writer = csv.writer(new_file, delimiter = '\t', lineterminator='\r')
                for line in csv_reader:
                    csv_writer.writerow(line)