CSV Datei, Header nur bei Dateierstellung
Verfasst: Montag 20. März 2023, 09:45
Hallo,
Hab hier in der Suche nichts gefunden, obwohl ich denke, dass die Frage nicht neu ist.
Also ich möchte in eine jeden Tag neu erstellte csv-Datei alle 10min Daten schreiben, der header soll aber natürlich nur bei der Erstellung geschrieben werden. Da hab ich mir aus "Internetfundstücken" folgende Code zusammengebraut:
import csv
try:
with open('testdatei.csv', mode='r') as csv_file:
sniffer = csv.Sniffer()
kopfzeile = sniffer.has_header(csv_file.read(512))
csv_file.seek(0)
print(str(kopfzeile))
except FileNotFoundError:
with open('testdatei.csv', mode='a+') as csv_file:
fieldnames = ['emp_name', 'dept', 'birth_month']
writer = csv.DictWriter(csv_file, fieldnames=fieldnames)
writer.writeheader()
writer.writerow({'emp_name': '34.2', 'dept': '666', 'birth_month': '987.23'})
print("Zeilen mit header geschrieben")
else:
with open('testdatei.csv', mode='a+') as csv_file:
fieldnames = ['emp_name', 'dept', 'birth_month']
writer = csv.DictWriter(csv_file, fieldnames=fieldnames)
writer.writerow({'emp_name': '1324', 'dept': '529', 'birth_month': '9753.13'})
print("zeilen geschrieben")
Meine Frage, wäre, geht das auch einfacher? Eine Funktion, die nur bei neuer Datei einen Header schreibt oder ihn bei vorhandener weglässt, habe ich nicht gefunden.
Danke
Ed
Hab hier in der Suche nichts gefunden, obwohl ich denke, dass die Frage nicht neu ist.
Also ich möchte in eine jeden Tag neu erstellte csv-Datei alle 10min Daten schreiben, der header soll aber natürlich nur bei der Erstellung geschrieben werden. Da hab ich mir aus "Internetfundstücken" folgende Code zusammengebraut:
import csv
try:
with open('testdatei.csv', mode='r') as csv_file:
sniffer = csv.Sniffer()
kopfzeile = sniffer.has_header(csv_file.read(512))
csv_file.seek(0)
print(str(kopfzeile))
except FileNotFoundError:
with open('testdatei.csv', mode='a+') as csv_file:
fieldnames = ['emp_name', 'dept', 'birth_month']
writer = csv.DictWriter(csv_file, fieldnames=fieldnames)
writer.writeheader()
writer.writerow({'emp_name': '34.2', 'dept': '666', 'birth_month': '987.23'})
print("Zeilen mit header geschrieben")
else:
with open('testdatei.csv', mode='a+') as csv_file:
fieldnames = ['emp_name', 'dept', 'birth_month']
writer = csv.DictWriter(csv_file, fieldnames=fieldnames)
writer.writerow({'emp_name': '1324', 'dept': '529', 'birth_month': '9753.13'})
print("zeilen geschrieben")
Meine Frage, wäre, geht das auch einfacher? Eine Funktion, die nur bei neuer Datei einen Header schreibt oder ihn bei vorhandener weglässt, habe ich nicht gefunden.
Danke
Ed