Seite 1 von 1
Datum vergleichen
Verfasst: Donnerstag 25. August 2011, 11:39
von peddy
Hallo,
ich möchte nach Dateien, mit einem bestimmten Datum suchen:
Code: Alles auswählen
#!/usr/bin/env python
import os
import time
jahr = time.localtime().tm_year
monat = time.localtime().tm_mon
tag = time.localtime().tm_mday
filestat = time.localtime(os.stat('file6').st_mtime)
if filestat.tm_mday == tag and filestat.tm_mon == monat and filestat.tm_year == jahr:
print 'Toll'
Der Code erscheint mir für die Aufgabe etwas umfangreich. Gibt es eine kürzere Alternative?
Re: Datum vergleichen
Verfasst: Donnerstag 25. August 2011, 11:45
von noisefloor
Hallo,
zwei Datumsobjekte lassen sich auch direkt vergleichen, du musst nicht Tag, Monat und Jahr einzeln machen.
Code: Alles auswählen
>>>import datetime
>>>t1 = datetime.datetime.now()
>>>t2 = datetime.datetime.now()
>>>t1 < t2
True
Gruß, noisefloor
Re: Datum vergleichen
Verfasst: Donnerstag 25. August 2011, 11:50
von Hyperion
Ergänzend sollte man die Methode `datetime.fromtimestamp` aus dem `datetime` Modul erwähnen. Damit kommst Du von der `os.stat` Rückgabe auf ein solches Objekt.
Re: Datum vergleichen
Verfasst: Donnerstag 25. August 2011, 11:52
von peddy
noisefloor hat geschrieben:Hallo,
zwei Datumsobjekte lassen sich auch direkt vergleichen, du musst nicht Tag, Monat und Jahr einzeln machen.
Code: Alles auswählen
>>>import datetime
>>>t1 = datetime.datetime.now()
>>>t2 = datetime.datetime.now()
>>>t1 < t2
True
Gruß, noisefloor
Ich möchte aber das Erstellungsdatum einer Datei mit dem heutigen (aktuellen) Datum vergleichen. Nur wenn Filedate == today ist, soll was gemacht werden.
Re: Datum vergleichen
Verfasst: Donnerstag 25. August 2011, 11:56
von Hyperion
Ja und? Schau doch mal in die Doku zum `datetime`-Modul. Ich habe grad gesehen, dass man auch direkt ein `date`-Objekt aus einem Timestamp generieren kann:
Code: Alles auswählen
In [48]: datetime.date.fromtimestamp(os.stat("translator.py").st_mtime)
Out[48]: datetime.date(2011, 5, 25)
In [49]: datetime.date.today()
Out[49]: datetime.date(2011, 8, 25)
Re: Datum vergleichen
Verfasst: Donnerstag 25. August 2011, 11:57
von peddy
Hyperion hat geschrieben:Ergänzend sollte man die Methode `datetime.fromtimestamp` aus dem `datetime` Modul erwähnen. Damit kommst Du von der `os.stat` Rückgabe auf ein solches Objekt.
Code: Alles auswählen
In [15]: x=os.stat('file1').st_atime
In [16]: datetime.datetime.fromtimestamp(x)
Out[16]: datetime.datetime(2011, 8, 25, 10, 51, 32, 361779)
Wie mache ich das, wenn ich nur Tag, Monat und Jahr vergleichen möchte. Ich habe noch keine Idee, wie ich die Uhrzeit ignorieren kann.
Re: Datum vergleichen
Verfasst: Donnerstag 25. August 2011, 11:58
von peddy
@all
Man seid ihr schnell. Bevor ich meine Frage gestellt habe, habt ihr schon eine Antwort gepostet.
Re: Datum vergleichen
Verfasst: Donnerstag 25. August 2011, 12:09
von peddy
Ok, danke noch mal für eure Geduld.
Code: Alles auswählen
#!/usr/bin/env python
import os
import datetime
if datetime.date.fromtimestamp(os.stat('file1').st_mtime) == datetime.date.today():
print 'Toll'
Re: Datum vergleichen
Verfasst: Donnerstag 25. August 2011, 19:37
von noisefloor
Hallo,
siehst, geht auch einfach.
Gruß, noisefloor