Dateiname mit Datum & Uhrzeit in Python generieren

Beim Speichern von Echtzeitdaten aus einem Python-Skript ist es oft hilfreich, einen Zeitstempel aus Datum & Uhrzeit im Dateinamen zu haben, wie z.B.

generate_datetime_filename_example.txt
mydata-2022-09-02_00-31-50-613015.csv

Mit dieser spezifischen Syntax vermeiden wir Sonderzeichen, die auf Windows-Betriebssystemen problematisch sind, und wir bieten einen lexikalisch sortierbaren Dateinamen

In Python kannst du dies mit UliEngineering.Utils.generate_datetime_filename() aus der UliEngineering-Bibliothek tun.

Installiere zunächst UliEngineering.

Nun kannst du deinen Dateinamen generieren mit

example_use_generate_datetime_filename.py
from UliEngineering.Utils.Date import *

filename = generate_datetime_filename()
# Beispiel: filename == 'data-2022-09-02_03-02-00-045587.csv'

oder du kannst die Datei einfach mit with open() öffnen:

open_generate_datetime_filename_write.py
with open(generate_datetime_filename(), "w") as outfile:
    # Beispiel, was du mit outfile machen kannst
    outfile.write("test")

Ohne UliEngineering

Du kannst diese vereinfachte Version verwenden, die keine Sekundenbruchteile unterstützt und Dateinamen wie

generate_datetime_filename_simple_example.txt
data-2022-09-02_00-31-50.csv

Quellcode (einfache Version – die UliEngineering-Version ist robuster und unterstützt mehr Funktionen):

generate_datetime_filename_simple.py
from datetime import datetime

def generate_datetime_filename(label="data", extension="csv", dt=None):
    if dt is None:
        dt = datetime.now()
    return f"{label}-{dt.year}-{dt.month:02d}-{dt.day:02d}_{dt.hour:02d}-{dt.minute:02d}-{dt.second:02d}.{extension}"

Check out similar posts by category: Python