104
C'è un modo per rilevare se sys.stdout
è collegato a un terminale di console o no? Per esempio, io voglio essere in grado di rilevare se foo.py è gestito tramite:Come faccio a sapere se sys.stdout è collegato al terminale o no?
$ python foo.py # user types this on console
O
$ python foo.py > output.txt # redirection
$ python foo.py | grep .... # pipe
Il motivo che mi chiedo questa domanda è che voglio fare in modo che la mia esposizione progressbar accade solo nel primo caso (console reale).
Per dimostrare nella shell, confrontare 'python -c "import sys; stampa (sys.stdout.isatty())"' (dovrebbe scrivere 'true') con' python -c "import sys; stampa (sys.stdout.isatty()) "| grep .' (dovrebbe scrivere 'False'). –