Python将大(10GB).csv转换为.tsv

时间:2018-06-02 07:38:29

标签: python file csv

python新手。想要将大型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 :(得分:4)

这应该这样做:

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)

答案 1 :(得分:1)

小心引用

CSV和TSV格式的一个区别是,大多数CSV实现都希望在数据中使用分隔符 ,并规定引用机制。    例如," Doe,John"将是一列,当转换为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)提供的解析器