104
¿Hay alguna forma de detectar si sys.stdout
está conectado a un terminal de consola o no? Por ejemplo, yo quiero ser capaz de detectar si se ejecuta a través de foo.py:¿Cómo puedo detectar si sys.stdout está conectado al terminal o no?
$ python foo.py # user types this on console
O
$ python foo.py > output.txt # redirection
$ python foo.py | grep .... # pipe
La razón por la que hago esta pregunta es que quiero para asegurarse de que mi pantalla progressbar ocurre solo en el primer caso (consola real).
Para demostrar en su concha, comparar 'python -c "import sys; impresión (sys.stdout.isatty())"' (debe escribir 'true') con' python -c "import sys; print (sys.stdout.isatty()) "| grep .' (debería escribir 'False'). –