更改同一文件夹中多个 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)
我是 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)