2009-05-13 25 views
49

Komut dizilimin etkileşimli bir kabuk oturumunda ve yeniden yönlendirilen stdout'la çalışırken (örneğin, başka bir komutla aktarıldığında) farklı davranmasını istiyorum.Bir komut dosyasının bir tty'de çalışıp çalışmadığını nasıl anlarsınız?

Bu ikisinden hangisinin bir Python betiğinde olduğunu nasıl anlarım?

Varolan programdaki bu davranış örneği: grep --color = auto, etkileşimli kabukta çalışırken eşleşmeleri vurgular, ancak başka bir şeye yönlendirildiğinde olmaz.

cevap

59
import os, sys 
os.isatty(sys.stdout.fileno()) 

veya

sys.stdout.isatty() 
İlgili konular