Python EOF Error on raw_input

Freezedevil

Lieutenant
Registriert
Mai 2011
Beiträge
651
Hi,

ich bastele grad ein bisschen mit Python rum um Datumsangaben in einer CSV in einen Timestamp umzuwandeln. Das ganze funktioniert theoretisch auch schon sehr gut (zumindest so weit wie ich bisher bin). Jetzt befinden sich in meinen Daten aber lustigerweise Angaben wie 29.02.13. Das geht so natürlich nicht und ich möchte den Nutzer (sprich mich) im Falle des Falles fragen welches Datum genutzt werden soll. Das Problem ist jedoch, dass der im Titel genannte Fehler auftritt.

Code:
import fileinput
import time
import datetime

csv = ""
#read from file/pipe
for line in fileinput.input():
    if "487885169" in line:
        csv += line

for line in csv.split('\n'):
    linearr = line.split(';')
    try:
        print int(datetime.datetime.strptime(linearr[2], '"%d.%m.%y"').strftime("%s"))
    except ValueError:
        print line,
        date = input("which date should be used (dd.mm.yy): ")
        print int(datetime.datetime.strptime(date, '"%d.%m.%y"').strftime("%s"))

Mir ist wahrscheinlich auch klar, warum er auftritt. Ich lese in der ersten Schleife bereits auf stdin bis zum EOF, weshalb ich es beim zweiten input-Aufruf sofort um die Ohren geworfen bekomme. Die Frage ist also viel mehr wie ich das Problem lösen kann.

Ich lese übrigens nicht direkt aus der Datei, sondern von stdin, da ich per "cat *.csv" mehrere Dateien zusammenfüge und in mein Programm pipe (lies "peipe"^^). Ich bin auch gar nicht so sehr an alternativen Lösungswegen interessiert (da fallen mir selbst genug ein), da der Weg das Ziel ist und ich eben gern wüsste wie man genau dieses Problem löst wenn einem mal keine Alternativen einfallen. Ihr dürft sie trotzdem gern los werden, schließlich lernt man dadurch ja auch immer was ;)

Das Grundproblem ist übrigens eigentlich, dass ich die Datumsangaben nicht anders sinnvoll in SQLite dargestellt bekomme. Falls sich jemand hier her verirrt, dem diesbezüglich was schlaues einfällt wäre ich sehr interessiert.

So die Frage steht, ich bedanke mich bereits im Voraus für eure Antworten.


OSX, Python 2.7.2
 
Zuletzt bearbeitet: (tabs im code durch leerzeichen ersetzt)
Zurück
Oben