現在、ループ処理を行いシステムが動いている間欲しい値をCSVファイルに記録するプログラムを作成しています。以下がそのシステムの書き込み部分です。
python3
1with open(str(name) + ".csv","a") as f: 2 writer = csv.DictWriter(f, fieldnames=['A', 'B','C']) 3 writer.writeheader() 4 writer.writerows(total)
上記のコードをループ処理内で使用すると、数値と数値の間にヘッダーである「A」、「B」、「C」が記録されてしまいます。そこで、try文を使用し、ファイルが無かった場合のみ上記の処理をするようにしようと考え書き直したコードが以下に示す通りです。
python
1try: 2 with open(str(name) + ".csv","a") as f: 3 writer.writerows(total) 4except: 5 with open(str(name) + ".csv","w") as f: 6 print("ファイルを作成します") 7 writer = csv.DictWriter(f, fieldnames=['A', 'B','C']) 8 writer.writeheader() 9 writer.writerows(total)
上記のコードをループ内に組み込んでプログラムを実行したところ、ファイルがあった場合でもexcept処理に入ってしまい、結局問題は解決しませんでした。最初だけヘッダーを付け、以降は数値だけを記録したい場合、どのようにコードを書き換えればよいか教えていただけると助かります。
解答がついたので削除
回答3件
あなたの回答
tips
プレビュー