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

时间:2018-03-07 19:11:38

标签: windows python-3.x csv delimiter

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

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)

请有人指出一些提示吗? 提前谢谢!

1 个答案:

答案 0 :(得分:0)

我认为你问题中的代码不符合你的要求。但是,这里是如何将它嵌入到更多代码中,这些代码将从指定的文件夹中读取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)