繁体   English   中英

使用 Python 将多个 CSV 转换为 TSV

[英]Converting multiple CSVs to TSVs using Python

尝试使用 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 到您目录中文件的长度。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM