2010-11-24 18 views
9

olarak çalıştırılıp aktarılmadığını kontrol edin Sadece bir boru olarak çalıştırılması gereken küçük bir Python yardımcı programına sahibim. Tek başına çalıştığında yardım mesajını yazdırmak istiyorum. Bir süreç boru olarak kullanılıp kullanılmadığını nasıl bilir. sys.stdin ve sys.__stdin__ karşılaştırması çalışmıyor.İşlemin

cevap

13

Sen isatty kullanabilirsiniz: standart girdi kabaca bir boru dışında, doğrudan kullanılıyor demektir bir tty, eğer

if sys.stdin.isatty(): 

O True olacaktır.

+2

Ayrıca, aksi için sys.stdout.isatty() ise. – isaaclw

+0

Sadece bir ipucu: Eğer pitonu bir CI ortamında ala travis, jenkins veya gitlab-ci olarak başlatırsanız, sys.stdin.isatty() 'her zaman 'False' olabilir. –