2016-07-13 27 views
0

Wenn sich mein Skript beim Pipettieren anders verhält als beim normalen Aufruf, wie kann ich feststellen, ob es weitergeleitet wird oder nicht? Dies ist notwendig, um ein Hängen zu vermeiden. Ich spreche nicht nur darüber, ob stdin leer ist oder nicht.Ermitteln, ob Skript in Python weitergeleitet wird 3

+1

Warum * a * Rohr sind Sie speziell egal, ob der Eingang? Worum geht es bei Pipes, die Ihr Programm anders verhalten müssen? Sollte Ihr Programm andere Dinge für 'python tun, proprog.py user2357112

+0

@ user2357112 Ist das wirklich notwendig zu wissen? Ich erklärte trotzdem, warum ich das möchte. – Melab

Antwort

-1

können Sie testen, ob Eingabe Ihres Programms auf einen tty verbunden ist, der helfen kann, je nach Anwendungsfall: $ python -c 'import sys; print(sys.stdin.isatty())' True $ echo hi | python -c 'import sys; print(sys.stdin.isatty())' False $ python -c 'import sys; print(sys.stdin.isatty())' < foo False

+0

Das gibt falsche Positive für die Umleitung von Nicht-Pipe-Eingaben, z. B. die Eingabe aus einer Datei. – user2357112