isatty()总是返回False吗?

时间:2019-03-31 19:28:26

标签: python-3.x

我想通过stdin将数据传递到Python脚本进行后续处理。命令是:

tail -f /home/pi/ALL.TXT | python3 ./logcheck.py

Python代码是:

import sys

while 1:
    if (sys.stdin.isatty()):
        for line in sys.stdin:
            print(line)

我希望代码连续监视stdin,然后在收到时处理每一行。 tail命令可以单独运行,但python脚本从不输出任何内容。

检查isatty()似乎总是返回False吗?

帮助!

1 个答案:

答案 0 :(得分:0)

TTY是您使用常规终端时的情况-就像在外壳中打开python并键入

BASH>python
>>>from sys import stdin
>>>stdin.isatty() #True

在您的情况下,标准输入来自非tty的东西。只需在not语句中添加if