PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Python: check von stdin?



by_lexus
05.05.2006, 09:51
Hallo zusammen,

ev. gibts ne ganz einfache Lösung für mein Problem, aber der gute Google kann mir nicht helfen, also:

Wie kann ich prüfen, ob auf sys.stdin Daten anliegen, ohne davon zu lesen? Mir schwebt folgendes vor:
Ich möchte einem Tool entweder Filenamen als Argumente mitgeben, oder diese eben über stdin pipen, etwa so:


myprog.py file1 file2 file3

aber auch:


ls /some/dir/ | myprog.py

.. ohne dass ich "-" als Argument angeben muss.

Sobald ich aber nun sys.stdin.readline() aufrufe, wartet die Funktion, bis was kommt, was ich ja aber in meinem Fall nicht will.

Wie kann ich also prüfen, ob an stdin was anliegt oder nicht?

Vielen Dank für eure Hilfe,

alex

madhatter
05.05.2006, 15:44
Warum prüfst du nicht als Erstes ob es Argumente gibt?

by_lexus
05.05.2006, 15:53
... ja schon, aber wenn ichs mischen will? (argv + stdin)?

madhatter
07.05.2006, 20:03
Gut, ich versteh nicht ganz was du machen willst, aber du könntest doch erst prüfen ob es Argumente gibt, und wenn es keine gibt, dann nimmst du stdin.

by_lexus
08.05.2006, 08:25
Ja, ich denk, das werd ich wohl machen. Trotzdem danke ;-)