使用 Python 将多个 CSV 转换为 TSV



尝试使用 python 将多 (5( 个 CSV 转换为 TSV,但当我运行它时,它只创建 1 个 TSV。谁能帮忙?

import csv
import sys
import os
import pathlib
print ("Exercise1.csv"), sys.argv[0]
dirname = pathlib.Path('/Users/Amber/Documents')
for file in pathlib.Path().rglob('*.csv'):
with open(file,'r') as csvin, open('Exercise1.tsv', 'w') as tsvout:
csvin = csv.reader(csvin)
tsvout = csv.writer(tsvout, delimiter='t')
for row in csvin:
print(row)
tsvout.writerow(row)
exit ()

谢谢!

您使用 for 循环打开 .csv 文件夹中的每个文件,但只打开要写入的单个文件(Exercise1.tsv(。因此,您每次都会覆盖相同的文件。您需要创建要在循环的每次迭代中写入的新文件。你可以尝试这样的事情:

for i,file in enumerate(pathlib.Path().rglob('*.csv')):
with open(file,'r') as csvin, open('Exercise_{}.tsv'.format(i), 'w') as tsvout:
csvin = csv.reader(csvin)
tsvout = csv.writer(tsvout, delimiter='t')

enumerate(( 向 for 循环添加一个计数器。这会在 Exercise.tsv 文件中附加一个数字,从 0 到目录中文件的长度。

最新更新