Kann sys.stdin "leer" sein?
Verfasst: Montag 13. September 2004, 08:24
Ich würde gerne überprüfen ob sys.stdin dem Programm etwas übergibt und falls nicht, soll eine Fehlermeldung kommen.
Doch leider wartet er ja solange auf eine Eingabe, bis etwas kommt und bricht nicht von selbst ab. Kann man das irgendwie hinbekommen?
Also ich will dem Script ermöglichen, entweder eine Datei als Argument zu übergeben oder von einem anderen Programm den Output in dieses Script zu pipen.
Bis jetzt hab ich es so:
usage(1) ruft eine Funktion auf, die das Programm abbricht und ein Info/Help Text ausgibt. Wenn ich das elif rausnehme, gehts auch.
Nur wartet er sonst immer auf eine Eingabe.
Doch leider wartet er ja solange auf eine Eingabe, bis etwas kommt und bricht nicht von selbst ab. Kann man das irgendwie hinbekommen?
Also ich will dem Script ermöglichen, entweder eine Datei als Argument zu übergeben oder von einem anderen Programm den Output in dieses Script zu pipen.
Bis jetzt hab ich es so:
Code: Alles auswählen
if args:
msgfile = args[0]
fp = open(msgfile)
elif sys.stdin:
fp = sys.stdin
else:
usage(1)
Nur wartet er sonst immer auf eine Eingabe.