編集承認された回答は正しいものの、すべてのデータがファイルに表示されますが、情報をループして新しい行に書き込むため、データはカスケードパターンで表示されます。この時点では、書式設定の問題に過ぎません。誰もが同様の問題を経験していますか?Python - CSVファイルとループに書き込む
私は複数の変数を定義しているforループを持っています。私はそれらの変数内の値を何度も何度も上書きせずにCSVに出力する必要があります。私は、この問題を解決するには、 "with open"ステートメントをforループの外側に置くことになりますが、Pythonは自分の変数を認識できなくなります。
解決策のもう1つは、変数内にデータを追加してforループの外で呼び出せるようにすることだと思いますが、私の場合はどうすればよいか分かりません。
例:それはforループ内で定義されているので、この例で
for item in my_list:
info = inspect.getmembers(item)
name = info[0]
import csv
with open("sample.csv", "w") as csvFile:
fieldnames = ['Item Name']
writer = csv.DictWriter(csvFile, fieldnames=fieldnames)
writer.writeheader()
writer.writerow({'Item Name': name })
csvFile.close()
、変数「名」が定義できません。
'with'を使用している場合は、' csvFile.close() 'は必要ありません。また、 'name'はあなたのループで常に再定義されています。すべての' info [0] 'をリストに追加しようとしていますか?もう一つは、 'list'という変数を使うべきです。なぜなら、既に空リストを作るためにpythonで使われているからです。最後に、 'with'は' for'ループの外にあります。あなたはどのような出力を得ていますか? – jacoblaw
はい、すべての情報[0]をCSVに書き込む必要があります。 「名前」を印刷してこのコードを実行すると、リスト内のすべての項目の名前がわかりますが、これをCSVに書き込むと、リスト内の最後の項目の名前しか表示されません。 –