2009-05-13 7 views
49

Je voudrais que mon script agisse différemment dans une session shell interactive et lors de l'exécution avec stdout redirigé (par exemple lorsqu'il est redirigé vers une autre commande).Comment reconnaître si un script s'exécute sur un tty?

Comment puis-je identifier lequel de ces deux se passe dans un script Python?

Exemple d'un tel comportement dans un programme existant: grep --color = auto highlight met en correspondance lors de l'exécution dans un shell interactif, mais pas lorsqu'il est redirigé vers autre chose.

Répondre

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

ou

sys.stdout.isatty() 
Questions connexes