ループ内の各行を追加し辞書を使用してCSVファイルに書きます。次のコードは次のとおりです。ループ内の辞書を使ってcsvの行を書く(Python 3)
fieldnames = ['id', 'variable1', 'variable2']
f = open('file.csv', 'w')
my_writer = csv.DictWriter(f, fieldnames)
my_writer.writeheader()
f.close()
for i in something:
something where I get data for mydict
with open('file.csv', 'a+b') as f:
header = next(csv.reader(f))
dict_writer = csv.DictWriter(f, header)
dict_writer.writerow(mydict)
私は、このコードは何年か前に私のために働いたと確信していたが、おそらく私はpython2を使用していました。今私はpython 3を使用しており、次のエラーが表示されます:
header = next(csv.reader(f))
StopIteration
何が問題なのですか?おかげ
:あなたは、Python 3を使用していることから、あなたがファイルをバイナリモードを使用すべきではありません。 [こちら](https://docs.python.org/3/library/csv.html#csv.reader)などを参照してください。 – DSM
ファイルを一度作成して何度も何度も使用するのではなく、ファイルを再オープン/リラップしているのはなぜですか?ヘッダーは、すべての行で変更されるべきではありません。たとえそれがあったとしても、再ラッピングするだけで、何度も繰り返して貼り付けるよりも理にかなっています。 – ShadowRanger