Python で csv に書き込んでいますが、プログラムの実行が完了したときに出力ファイルが空白になるのはなぜだろうと思っていました。まず、私のコードは次のとおりです。
reader = csv.reader(open(location, 'rU'), delimiter = ',', quotechar = '"')
writer = csv.writer(open('temp.csv', 'wb'), delimiter = ',', quotechar = '"')
writer.writerow(["test", "test", "test", "test", "test", "test", "test"])
count = 0
for row in reader:
if count != 0 and count < len(split):
writer.writerow([row[0], row[1], row[2], row[3], row[4], row[5], split[count-1]])
count = count + 1
私はそれについていくつか知っています:
- プログラムが終了すると、「temp.csv」に書き込まれるのは「test」行だけです。ドキュメントの残りの部分は空です。
- 実行中にプログラムを強制停止すると、実際にはファイルにテキストが書き込まれます。何らかの理由で消去されます。
- 私はいくつかの調査を行い、多くの人が csv ファイルを「閉じる」ことで問題が解決することを発見しましたが、明らかな何かが欠けていない限り、それは私にとってはうまくいかないようです!
よろしくお願いします。
編集:ここに私が取り組んでいるいくつかの更新されたコードがあります:
infile = open(location, 'rU')
outfile = open('temp.csv', 'wb')
reader = csv.reader(infile, delimiter = ',', quotechar = '"')
writer = csv.writer(outfile, delimiter = ',', quotechar = '"')
split = email_text.split('NEW MESSAGE BEGINS HERE')
count = 0
for row in reader:
if count != 0 and count < len(split):
writer.writerow([row[0], row[1], row[2], row[3], row[4], row[5], split[count-1]])
outfile.flush()
count = count + 1
infile.close()
outfile.close()