Existe-t-il un moyen de détecter si sys.stdout
est connecté ou non à un terminal de console? Par exemple, je veux pouvoir détecter si foo.py est exécuté via:
$ python foo.py # user types this on console
OR
$ python foo.py > output.txt # redirection
$ python foo.py | grep .... # pipe
La raison pour laquelle je pose cette question est que je veux m'assurer que mon affichage de la barre de progression ne se produit que dans le premier cas (console réelle).
if sys.stdout.isatty():
# You're running in a real terminal
else:
# You're being piped or redirected