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)
我错过了什么吗?纠正我如果我错了。
答案 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)提供的解析器