Python: check von stdin?

B

by_lexus

Grünschnabel
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:

Code:
myprog.py file1 file2 file3

aber auch:

Code:
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
 
Warum prüfst du nicht als Erstes ob es Argumente gibt?
 
... ja schon, aber wenn ichs mischen will? (argv + stdin)?
 
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.
 
Ja, ich denk, das werd ich wohl machen. Trotzdem danke ;-)
 
Zurück
Oben