On Fri, 30 Aug 2019 01:29:48 +0200, Peter Otten wrote: > Perhaps a simple example can help? > > $ cat checktty.py import sys > > stream = sys.stdout > > if stream.isatty(): > message = "tty" > else: > message = "no tty" > print(message, file=stream) > > When you run the script it prints to the terminal: > > $ python3 checktty.py tty > > But when you redirect to a pipe or into a file: > > $ python3 checktty.py | cat no tty > > $ python3 checktty.py > tmp.txt $ cat tmp.txt no tty
But, see my example: $ cat check-isatty.py import sys import time if sys.stderr.isatty(): p = 'tty ' + '\r' else: p = 'no tty ' + '\n' sys.stderr.write(p) sys.stderr.flush() time.sleep(1.0) I run both of the following commands: $ python check-isatty.py $ python check-isatty.py | cat Both will output `tty'. So still I cannot figure out the issue. Regards -- https://mail.python.org/mailman/listinfo/python-list