104
Existe-t-il un moyen de détecter si sys.stdout
est connecté à un terminal de console ou non? Par exemple, je veux être en mesure de détecter si foo.py est exécutée via:Comment puis-je détecter si sys.stdout est connecté au terminal ou non?
$ python foo.py # user types this on console
OU
$ python foo.py > output.txt # redirection
$ python foo.py | grep .... # pipe
La raison pour laquelle je pose cette question est que je veux vous assurer que mon écran progressbar se produit uniquement dans le premier cas (console réelle).
Pour démontrer dans votre shell, comparer "sys à l'importation; impression (sys.stdout.isatty())" '' python -c (doit écrire'on') avec import sys 'python -c »; print (sys.stdout.isatty()) "| grep .' (devrait écrire 'False'). –