Python: file erstellen

Python auf Einplatinencomputer wie Raspberry Pi, Banana Pi / Python für Micro-Controller
Antworten

Python: file erstellen

Hallo, ich möchte ein file erstellen was das aktuelle Datum im filename hat.
1
33%
erste Ansatz: file = open("Messung.csv","a")
0
Keine Stimmen
Ergebnis, file Messung.csv wird erstellt.
1
33%
nun möchte ich ein file erstellen was dann so aussieht: 20201103.csv
1
33%
file = open("%Y%m%d.csv","a")
0
Keine Stimmen
 
Insgesamt abgegebene Stimmen: 3
Jopi01
User
Beiträge: 1
Registriert: Montag 2. November 2020, 19:53

Hallo, ich möchte ein file erstellen was das aktuelle Datum im filename hat.

erste Ansatz: file = open("Messung.csv","a")

Ergebnis, file Messung.csv wird erstellt.

nun möchte ich ein file erstellen was dann so aussieht: 20201103.csv

file = open("%Y%m%d.csv","a")
Benutzeravatar
sparrow
User
Beiträge: 4514
Registriert: Freitag 17. April 2009, 10:28

"a" ist der Modus zum Anhängen von Daten an eine existierende Datei. Du willst aber eine neue erstellen statt anzuhängen. Um das auch im Code deutlich zu machen verwende den Modus "w".
Beim Schreiben von nicht-binären Dateien sollte man auch immer das Encoding mit angeben.
Dateien sollten mit dem with-Statement geöffnet werden, also:

Code: Alles auswählen

with open(filename, "w") as file:
    ...
Wie kommst du darauf, dass %-Zeichen Platzhalter in Zeichenketten sind?
In aktuellen Python-Versionen nimmt man f-Strings zum Formatieren von Zeichenketten:

Code: Alles auswählen

name = "Jopi"
print(f"Hallo, {name}.")
Und um das aktuelle Datum zu kommen musst du dich mit dem datetime-Modul beschäftigen.
Sirius3
User
Beiträge: 18227
Registriert: Sonntag 21. Oktober 2012, 17:20

@sparrow: für die Formatierung von Datum sind %Y, %m und %d schon korrekt, aber das muß natürlich in einen passenden Formatstring gepackt werden:

Code: Alles auswählen

filename = f"{datetime.datetime.now():%Y%m%d}.csv"
Benutzeravatar
DeaD_EyE
User
Beiträge: 1206
Registriert: Sonntag 19. September 2010, 13:45
Wohnort: Hagen
Kontaktdaten:

Jopi01 hat geschrieben: Dienstag 3. November 2020, 08:14 nun möchte ich ein file erstellen was dann so aussieht: 20201103.csv
Tip: 20201103_messungen.csv ist doch viel besser
  1. Daten lassen sich weiterhin nach Datum sortieren (lexikografisch)
  2. der angehängte Name gibt Hinweis darauf, um was es sich handeln könnte
Basierend auf dem Beispiel von Sirius3:

Code: Alles auswählen

import datetime


filename = f"{datetime.datetime.now():%Y%m%d}_messungen.csv"
sourceserver.info - sourceserver.info/wiki/ - ausgestorbener Support für HL2-Server
Antworten