datetime.date und str
Verfasst: Montag 30. Dezember 2013, 16:35
Hi,
ich möchte eine .org Datei parsen, dazu verwende ich Orgnode. (http://members.optusnet.com.au/~charles ... Orgnode.py) Die (plaintext) Datei könnte so aussehen:
In Anlehnung an ein Minimal-Beispiel (http://members.optusnet.com.au/~charles ... gnode.html) des Autors:
Das funktioniert und die Ausgabe lautet: Ich bin ein heutiges TODO (30.12.2013)
Nun möchte ich wissen, ob überfällige Einträge existieren:
Und das resultiert in einem: TypeError: can't compare datetime.date to str
Laut Dokumentation liefert Deadline() ein date object zurück:
Zu Versuchszwecken:
Ergibt: TypeError: must be string, not datetime.date
Meiner Meinung nach versuche ich hier zwei datetime.date Objekte zu vergleichen. Sieht jemand den Fehler?
Danke im Voraus!
ich möchte eine .org Datei parsen, dazu verwende ich Orgnode. (http://members.optusnet.com.au/~charles ... Orgnode.py) Die (plaintext) Datei könnte so aussehen:
Code: Alles auswählen
* TODO [#A] Ich bin ein älteres TODO (29.12.2013)
DEADLINE: <2013-12-29 Sun>
* TODO [#A] Ich bin ein heutiges TODO (30.12.2013)
DEADLINE: <2013-12-30 Mon>
Code: Alles auswählen
import datetime
today = datetime.date.today()
filename = "/Users/NAME/org/privat.org"
nodelist = makelist(filename)
for n in nodelist:
if today == n.Deadline():
print "%s" % (n.Heading())
Nun möchte ich wissen, ob überfällige Einträge existieren:
Code: Alles auswählen
for n in nodelist:
if today > n.Deadline():
print "%s" % (n.Heading())
Laut Dokumentation liefert Deadline() ein date object zurück:
Code: Alles auswählen
# aus http://members.optusnet.com.au/~charles57/GTD/Orgnode.py
…
dd_re = re.search('DEADLINE:\s*<(\d+)\-(\d+)\-(\d+)', line)
if dd_re:
deadline_date = datetime.date(int(dd_re.group(1)),
int(dd_re.group(2)),
int(dd_re.group(3)) )
…
if deadline_date:
thisNode.setDeadline(deadline_date)
Code: Alles auswählen
for n in nodelist:
deadline = datetime.datetime.strptime(n.Deadline(), '%y-%m-%d').date()
Meiner Meinung nach versuche ich hier zwei datetime.date Objekte zu vergleichen. Sieht jemand den Fehler?
Danke im Voraus!