Python конвертировать большие (10 ГБ) .csv в .tsv - PullRequest
0 голосов
/ 02 июня 2018

Впервые на питоне.Хотите конвертировать большой CSV-файл в TSV.

import re
with open("D:/AddressEvaluation/NAD/NAD.csv", 'r') as myfile:
with open("D:/NAD.txt", 'w') as csv_file:
for line in myfile:
  fileContent = re.sub(",", "\t", line)
  csv_file.write(fileContent)

Я что-то упустил?Поправь меня, если я ошибаюсь.

Ответы [ 2 ]

0 голосов
/ 02 июня 2018

Это должно сделать это:

import csv

with open('D:/AddressEvaluation/NAD/NAD.csv','r') as csvin, open('D:/NAD.txt', 'w') as tsvout:
    csvin = csv.reader(csvin)
    tsvout = csv.writer(tsvout, delimiter='\t')

    for row in csvin:
        tsvout.writerow(row)
0 голосов
/ 02 июня 2018

Остерегайтесь цитирования

Одно из отличий форматов CSV и TSV состоит в том, что большинство реализаций CSV ожидают, что в данных может использоваться разделитель , может и предписывают механизм цитирования.Например, «Доу, Джон» - это один столбец, и при преобразовании в TSV вам нужно оставить эту запятую там, но удалить кавычки.

Name,Age
Bob,12
"Doe, John",13
"William ""Billy"" Bob",14

может быть должным образом преобразовано в

Name\tAge
Bob\t12
Doe, John\t13
William "Billy" Bob\t14

Это не то, что делает предложенный код.

Возможно, вам лучше использовать готовый парсер csv, например, предоставленный pandas (http://pandas.pydata.org/pandas-docs/version/0.23/generated/pandas.read_csv.html)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...