Seite 1 von 1
Ordner mit heutigem Datum statt Namen erstellen
Verfasst: Mittwoch 26. April 2017, 08:06
von sharky1001
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
Re: Ordner mit heutigem Datum statt Namen erstellen
Verfasst: Mittwoch 26. April 2017, 08:37
von snafu
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()
Re: Ordner mit heutigem Datum statt Namen erstellen
Verfasst: Mittwoch 26. April 2017, 09:06
von Sirius3
@snafu: wenn man sowohl Uhrzeit als auch Datum möchte, sollte man now nur einmal aufrufen. Daher ist die Funktion get_current_date nur beschränkt sinnvoll.
Re: Ordner mit heutigem Datum statt Namen erstellen
Verfasst: Mittwoch 26. April 2017, 09:26
von Kebap
Von der Uhrzeit ist hier nirgends die Rede. snafu hat nur zwei Varianten gezeigt, wie man ein Datum schreiben könnte.
Re: Ordner mit heutigem Datum statt Namen erstellen
Verfasst: Mittwoch 26. April 2017, 09:33
von BlackJack
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.
Re: Ordner mit heutigem Datum statt Namen erstellen
Verfasst: Mittwoch 26. April 2017, 09:49
von snafu
Ich verstehe die Kritik nicht wirklich. Man will doch das, was gerade aktuell ist. Eine Datei, die um 23:59 erstellt wurde, sollte ein anderes Datum im Namen haben als die Datei von 00:01.
Re: Ordner mit heutigem Datum statt Namen erstellen
Verfasst: Mittwoch 26. April 2017, 10:01
von BlackJack
@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.
Re: Ordner mit heutigem Datum statt Namen erstellen
Verfasst: Mittwoch 26. April 2017, 13:13
von sharky1001
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.
Re: Ordner mit heutigem Datum statt Namen erstellen
Verfasst: Mittwoch 26. April 2017, 13:32
von BlackJack
@sharky1001: Dieses Datumsformat ist unüblich weil '%Y-%m-%d' auch alphabetisch sortiert die richtige zeitliche Reihenfolge ergibt, '%d.%m.%Y' dagegen nicht.
Re: Ordner mit heutigem Datum statt Namen erstellen
Verfasst: Donnerstag 27. April 2017, 08:54
von snafu
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.
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)...
Re: Ordner mit heutigem Datum statt Namen erstellen
Verfasst: Donnerstag 27. April 2017, 17:29
von pixewakb
Mit so etwas habe ich auch häufiger zu tun. Meine Standardlösung:
Code: Alles auswählen
>>> import datetime
>>> date = str(datetime.date.today())
>>> date
'2017-04-27'
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.