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
0
A
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
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
@ user2357112 Ist das wirklich notwendig zu wissen? Ich erklärte trotzdem, warum ich das möchte. – Melab