Ich habe ein kleines Python-Dienstprogramm, das nur als eine Pipe ausgeführt werden soll. Ich möchte, dass es die Hilfemeldung ausgibt, wenn es eigenständig ausgeführt wird. Wie kann ein Prozess wissen, ob er als Rohr verwendet wird? Vergleichen sys.stdin
und sys.__stdin__
funktioniert nicht.Überprüfen Sie, ob der Prozess als eine Pipe ausgeführt wird
9
A
Antwort
13
können Sie isatty
verwenden:
if sys.stdin.isatty():
Es True
sein wird, wenn die Standardeingabe ein tty ist, das es in etwa bedeutet, direkt verwendet wird ist, außerhalb eines Rohres.
Verwandte Themen
- 1. Überprüfen Sie, ob ein Prozess mit Shell-Skript ausgeführt wird
- 2. Überprüfen, ob der CSS3-Übergang ausgeführt wird
- 3. Überprüfen Sie, ob stderr eine Pipe in Bash ist
- 4. Überprüfen Sie, ob eine bestimmte EXE-Datei ausgeführt wird
- 5. Überprüfen Sie, ob der Dienst unter Android ausgeführt wird.
- 6. Überprüfen, ob der Prozess läuft
- 7. Überprüfen Sie, ob Remote-Prozess läuft (Linux)
- 8. Überprüfen Sie, ob ein Python-Skript ordnungsgemäß ausgeführt wird und ob es nicht erneut ausgeführt wird.
- 9. Starten Sie einen Prozess als Benutzer aus einem Prozess, der als Administrator ausgeführt wird
- 10. Verwenden Sie GetProcessesByName die beste Möglichkeit, um zu überprüfen, ob ein Prozess ausgeführt wird?
- 11. Überprüfen, ob ein Programm ausgeführt wird
- 12. So ermitteln Sie, ob eine Webanwendung gerade ausgeführt wird
- 13. Überprüfen Sie, ob ein MotionEvent.ACTION_MOVE ausgeführt wurde
- 14. Überprüfen Sie, ob Methode zum ersten Mal ausgeführt wird. C#
- 15. Überprüfen, ob eine Anwendung mit Windows-Dienst ausgeführt wird
- 16. Überprüfen Sie, ob die Anwendung ausgeführt wird - InstallJammer
- 17. Shell-Skript, um zu überprüfen, ob der Prozess bereits ausgeführt wird und beenden, wenn ja
- 18. Überprüfen Sie, ob ein gespeicherter Prozess läuft.
- 19. Überprüfen Sie, ob ein Windows-Dienst ausgeführt wird?
- 20. Überprüfen, ob Prozess läuft, wenn nicht starten
- 21. Überprüfen Sie, ob ein anderer Prozess Administratorrechte in .NET hat.
- 22. Wie kann ich feststellen, ob mein Prozess interaktiv ausgeführt wird?
- 23. Ermitteln, ob ein Prozess in lxc/Docker ausgeführt wird
- 24. So ermitteln Sie, ob der Prozess vom Dienststeuerungs-Manager ausgeführt wird
- 25. Aktualisierungssteuertext, während der Prozess ausgeführt wird
- 26. Überprüfen, ob ein Befehl in PATH/ausführbar ist als Prozess
- 27. Wie kann ich überprüfen, ob ein Windows-Dienst ausgeführt wird
- 28. Winforms-Steuerelement, das angibt, ob einzelner Prozess ausgeführt wird
- 29. Überprüfen, ob Code in Interface Builder ausgeführt wird
- 30. Überprüfen Sie, ob eine Klassenmethode
Auch 'if sys.stdout.isatty()' für das Gegenteil. – isaaclw
Nur ein Hinweis: Wenn Sie Python in einer CI-Umgebung ala travis, jenkins oder gitlab-ci starten, kann es sein, dass 'sys.stdin.isatty()' immer 'False' ist. –