Python CSVwriter在处理大列表时表现得很奇怪
我一直在使用python将大量数据写入CSV文件。 我使用以下代码:Python CSVwriter在处理大列表时表现得很奇怪,python,csv,Python,Csv,我一直在使用python将大量数据写入CSV文件。 我使用以下代码: for elem in element: csvfile.writerow(elem) 代码在此循环大约10000次,因为for循环用于大列表中的每个元素。 很简单,对吧? 但是当元素是非常大的列表时,想想+5000个元素或更多,csvwriter的行为会很奇怪。 通常情况下,我希望结果如下所示: "line 1, line 1, line 1 line 1..." "line 2, line 2, line 2,..
for elem in element:
csvfile.writerow(elem)
代码在此循环大约10000次,因为for循环用于大列表中的每个元素。
很简单,对吧?
但是当元素是非常大的列表时,想想+5000个元素或更多,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_单词=一个包含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))
你确定这不仅仅是你的文本编辑器在为你包装长行吗?怎么会呢?就像elem中的elem.strip()一样?@JoranBeasley它在excel、notepad++和VIM中的显示方式相同,除非它是一种标准的包装方式,否则它不可能是巧合。您能否显示实际的可运行代码和重现此问题的样本数据(希望是微不足道的样本数据,如
elem=range(6000)
)?因为要么(a)输入数据中有未替换的换行符,要么(b)实际代码中有一些愚蠢的东西,要么(c)Python中有一个bug(可能在以后的版本中修复了,所以请给出您的版本号)。此外,事实上,每一行都包含在一对引号中,这意味着要么您做错了什么,或者您没有理由首先使用CSV,因为您只有一列。这对你的真实数据准确吗?