如何高效地在Python中写入CSV?
我正在处理一个大文档,想要计算tf-idf(词频-逆文档频率)。我手头的单词数量超过了80,000个。我想把稀疏矩阵写入一个csv文件。我使用的代码和这里的回答类似:如何用Python给CSV文件添加新列?
但是,输出文件的大小太大了,只有大约30,000个单词就超过了700 MB。 所以,我想知道怎么才能更高效地写入这个文件? 谢谢。
2 个回答
14
你可以很简单地使用gzip模块直接写入一个gzip文件:
import gzip
import csv
f=gzip.open("myfile.csv.gz", "w")
csv_w=csv.writer(f)
for row in to_write :
csv_w.writerow(row)
f.close()
别忘了关闭文件,否则生成的csv.gz文件可能会无法读取。
你也可以用一种更符合Python风格的方法来做:
with gzip.open("myfile.csv.gz", "w") as f :
csv_w = csv.writer(f)
...
这样可以确保文件会被关闭。
希望这对你有帮助。