Guten Tag zusammen,
wie kann man mit Python automatisch einen Ordner mit heutigem Datum statt Name erstellen. Einfach mit Namen (strings) ist kein Problem ich benutzte einfach den folgenden Befehl:
import os
os.makedirs('C:\\Users\\Desktop\\ordner_mit_datum')
aber was ist wenn den Ordner statt Name einfach das heutige Datum haben muss. Was braucht Python noch um zu wissen welcher Tag ist gheute und wie kann man das in mein Fall benutzten bzw. kombinieren
Danke an allen die eine Antwort schreiben
Ordner mit heutigem Datum statt Namen erstellen
Code: Alles auswählen
from datetime import datetime as dt
def get_current_date(dateformat):
return dt.now().strftime(dateformat)
def main():
print(get_current_date('%d.%m.%Y'))
print(get_current_date('%Y-%m-%d'))
if __name__ == '__main__':
main()
Von der Uhrzeit ist hier nirgends die Rede. snafu hat nur zwei Varianten gezeigt, wie man ein Datum schreiben könnte.
MorgenGrauen: 1 Welt, 8 Rassen, 13 Gilden, >250 Abenteuer, >5000 Waffen & Rüstungen,
>7000 NPC, >16000 Räume, >200 freiwillige Programmierer, nur Text, viel Spaß, seit 1992.
>7000 NPC, >16000 Räume, >200 freiwillige Programmierer, nur Text, viel Spaß, seit 1992.
Selbst wenn man nur das Datum will sollte man nur einmal aufrufen, sonst kann es um Mitternacht herum passieren das man zwei verschiedene Daten bekommt.
@snafu: Die Kritik ist das zu oft Neulinge den Wert für *eine* Datei mehrfach neu bestimmen. Zum Beispiel um ein Verzeichnis mit dem Datum anzulegen, vorher auf dessen Existenz zu prüfen, und dann dort drin eine Datei mit Datum und Uhrzeit anzulegen. Und dafür dann dreimal `datetime.now()` aufrufen, statt einmal und das dann dreimal zu verwenden.
Dann gibt's auch immer noch die die für Datum und Uhrzeit zweimal `now()` aufrufen und das dann in einen Dateinamen formatieren, wo noch interessantere Sachen bei herauskommen können. Ein Aufruf pro Zeitkomponente (Stunden, Minuten, Sekunden) habe ich auch schon mal gesehen.
Falls jemand Dein Beispiel als Beispiel sieht wie man ein Datum auf zwei Arten formatiert und nicht wie man potentiell zwei verschiedene Datumsangaben formatiert, dann tappt der vielleicht auch in diese Falle. Wir wissen ja nicht mal ob Du diesen Fall auf dem Schirm hattest, und da ist es halt besser was zu sagen. IMHO.
Dann gibt's auch immer noch die die für Datum und Uhrzeit zweimal `now()` aufrufen und das dann in einen Dateinamen formatieren, wo noch interessantere Sachen bei herauskommen können. Ein Aufruf pro Zeitkomponente (Stunden, Minuten, Sekunden) habe ich auch schon mal gesehen.
Falls jemand Dein Beispiel als Beispiel sieht wie man ein Datum auf zwei Arten formatiert und nicht wie man potentiell zwei verschiedene Datumsangaben formatiert, dann tappt der vielleicht auch in diese Falle. Wir wissen ja nicht mal ob Du diesen Fall auf dem Schirm hattest, und da ist es halt besser was zu sagen. IMHO.
-
- User
- Beiträge: 12
- Registriert: Freitag 7. April 2017, 11:27
Hallo und vielen Dank an allen, die mir eine Antwort gegeben haben. Ich fand heute die Lösung für mein Problem. So sieht es aus:
import time
import os
date = (time.strftime("%d.%m.%Y"))
os.makedirs('C:\\Users\\Desktop\\' + date)
Ganz einfach. Mann kann auch statt Datum Uhrzeit nehmen.
import time
import os
date = (time.strftime("%d.%m.%Y"))
os.makedirs('C:\\Users\\Desktop\\' + date)
Ganz einfach. Mann kann auch statt Datum Uhrzeit nehmen.
@sharky1001: Dieses Datumsformat ist unüblich weil '%Y-%m-%d' auch alphabetisch sortiert die richtige zeitliche Reihenfolge ergibt, '%d.%m.%Y' dagegen nicht.
Beim Benennen von Dateien legt man ja normalerweise ein Format fest, das man benutzen will. Wenn man zwei verschiedene Formate für den selben Zeitpunkt benötigt, dann sollte man das natürlich nicht so machen, weil dann im Ergebnis unterschiedliche Zeitpunkte rauskommen können. Dass jemand mein Vorgehen als realitätsnah ansehen könnte, hatte ich tatsächlich nicht bedacht. Auch hatte ich ehrlich gesagt nicht auf dem Schirm, dass man zum Formatieren auch einfach time.strftime() benutzen kann (wobei es in dieser Form auch nur bei einmaliger Verwendung für einen Zeitpunkt benutzt werden sollte)...BlackJack hat geschrieben:Falls jemand Dein Beispiel als Beispiel sieht wie man ein Datum auf zwei Arten formatiert und nicht wie man potentiell zwei verschiedene Datumsangaben formatiert, dann tappt der vielleicht auch in diese Falle. Wir wissen ja nicht mal ob Du diesen Fall auf dem Schirm hattest, und da ist es halt besser was zu sagen. IMHO.
Mit so etwas habe ich auch häufiger zu tun. Meine Standardlösung:
Die macht genau das, was gefordert ist und ist einfach (2 Zeilen!). Den Umweg datetime.datetime.now() mit Stunden, Minuten und Sekunden würde ich nicht gehen.
Code: Alles auswählen
>>> import datetime
>>> date = str(datetime.date.today())
>>> date
'2017-04-27'