我一直在使用python将大量数据写入CSV文件。 我使用以下代码:
for elem in element:
csvfile.writerow(elem)
代码通过此迭代大约10,000次,因为它应该因为for循环用于大型列表中的每个元素。 够简单吧? 但是当elem是非常大的列表时,想想+5,000个或更多元素,csvwriter行为奇怪。 通常我希望结果看起来像这样:
"line 1, line 1, line 1 line 1..."
"line 2, line 2, line 2,..."
但我得到的值非常大:
"line 1, line 1,
line 1, line 1..."
"line 2, line 2,
line 2, line 2..."
除非是新的迭代,否则永远不应该开始新的行... 它适用于小数据样本。 另外在记事本++中它显示的是不同的行...... 有人有什么想法吗?
修改
对于要求的人: 这是实际的代码:
top_words = 10,000个最常见字词的列表
for text, cat in texts:
words = wordpunct_tokenize(text)
word_c=len(words)
c = Counter()
c.update(word for word in words if word in top_words)
word_freq = [c.get(word,0) for word in top_words]
word_freq = ','.join(map(str, word_freq))
csvfile.writerow((word_freq, cat))