3
是否有某種方法來檢查python進程的輸出是否正在寫入文件?我希望能夠做到這樣的事情:如何檢查文件是否寫入終端?
if is_writing_to_terminal:
sys.stdout.write('one thing')
else:
sys.stdout.write('another thing')
是否有某種方法來檢查python進程的輸出是否正在寫入文件?我希望能夠做到這樣的事情:如何檢查文件是否寫入終端?
if is_writing_to_terminal:
sys.stdout.write('one thing')
else:
sys.stdout.write('another thing')
使用os.isatty
。這需要一個文件描述符(fd),可以通過fileno
成員獲得。
>>> from os import isatty
>>> isatty(sys.stdout.fileno())
True
如果你想支持任意文件喜歡(如StringIO
),那麼你必須檢查類文件是否具有相關聯的FD,因爲不是所有的文件,喜歡做的事:
hasattr(f, "fileno") and isatty(f.fileno())
您可以使用os.isatty()
檢查文件描述符是否是終端:
if os.isatty(sys.stdout.fileno()):
sys.stdout.write('one thing')
else:
sys.stdout.write('another thing')
嗯,所以有os.isatty之間'什麼區別(sys.stdout.fileno())'和['sys.stdout.isatty ()'](http://docs.python.org/2 /library/stdtypes.html#file.isatty)? – Shep