Преобразование нескольких CSV в TSV с использованием Python - PullRequest
0 голосов
/ 09 февраля 2020

Попытка преобразовать несколько (5) CSV в TSV, используя python, но когда я запускаю это, создается только 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 ()

Спасибо!

1 Ответ

1 голос
/ 09 февраля 2020

Вы открываете каждый файл в папке .csv с помощью вашей команды для l oop, но открываете только один файл для записи (Exercise1.tsv). Таким образом, вы перезаписываете один и тот же файл каждый раз. Вам нужно создавать новые файлы для записи в каждой итерации l oop. Вы можете попробовать что-то вроде этого:

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 () добавляет счетчик для l oop. Это добавит число к вашим файлам Exercise.tsv от 0 до длины файлов в вашем каталоге.

...