Pythonを使用して大量のデータをCSVファイルに書き込んでいます。次のコードを使用します。
for elem in element:
csvfile.writerow(elem)
for ループは大きなリスト内のすべての要素に使用されるため、コードはこれを約 10,000 回繰り返します。簡単ですよね?しかし、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))