2009-05-13 31 views
49

Me gustaría que mi script actuara de manera diferente en una sesión de shell interactiva y cuando se ejecuta con stdout redirigido (por ejemplo, cuando se conecta a otro comando).¿Cómo reconocer si un script se está ejecutando en un tty?

¿Cómo reconozco cuál de estos dos ocurre en un script de Python?

Ejemplo de tal comportamiento en el programa existente: grep --color = auto highlight coincide cuando se ejecuta en shell interactivo, pero no cuando se canaliza a otra cosa.

Respuesta

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

o

sys.stdout.isatty() 
Cuestiones relacionadas