ランダムなデータをテキストファイルに追加しようとしていますが、これで成功しましたが、ヘッダー行に問題があります。一度ヘッダー行を追加したいのですが、スクリプトを実行するたびにファイルにデータだけを追加し、ヘッダー行があれば無視してください。私はこのようなことを試みたが失敗する。私はSO python csv, writing headers only onceのこのサンプルコードを見ようとしましたが、正しく実装できませんでした。 誰かが自分のコードを修正するのを手伝ってくれたら。私は感謝するでしょう。python csv header無視してデータをCSVファイルに追加し続ける
import random
import csv
import os.path
from time import gmtime, strftime
filename = '/home/robdata/collection1.dat'
file_exists = os.path.isfile(filename)
v = random.randint(0, 100)
with open(filename, "a") as csvfile:
headers = ['DATE', 'value']
writer = csv.DictWriter(csvfile, delimiter=',', lineterminator='\n',fieldnames=headers)
if not file_exists:
writer.writeheader() # file doesn't exist yet, write a header
writer.writerow({'DATE': strftime("%Y-%m-%d %H:%M:%S", gmtime()), 'value': v})
ヘッダー行を追加せずにデータを挿入します。私はスクリプトの最初の実行にヘッダーを含めたい、次回はスクリプトを何回か実行するときに、ヘッダー行ではなくデータだけを追加すべきです。あらゆるアイデアや助けに感謝します。
あなたが疑問にあなたのコードが間違ってやっていることの説明を編集できますか? – glibdud
@glibdud私は私の質問に以下を追加します。私はファイルにデータを挿入することができますが、ヘッダーはありません。 – rob
ファイルを実行する前に(ファイルが存在する前に)、AttributeErrorを取得する必要があります。あなたの 'csv.writer'オブジェクトとあなたがリンクした質問で使われたものとの違いを見てみましょう。 – glibdud