管道 iostat -d 1 到 python sys.stdin
Piping iostat -d 1 to python sys.stdin
我正在尝试使用以下命令传输 iostat、mongostat 等实用程序的输出:
$ iostat -d 1 | ./script.py
我在其中使用代码:
for line in sys.stdin:
print line
我看到它挂起并且没有将每一行打印到控制台。
如果我 运行 没有标志每秒重复一次 '-d 1' 输出只发生一次,脚本将按预期运行。
$ 统计 | ./script.py
正在缓冲数据,您可以在sys.stdout.readline
上调用iter
:
import sys
for line in iter(sys.stdin.readline,""):
print line
运行 iostat
它自己只输出几行,iostat -d 1
连续循环以便数据得到缓冲。
我正在尝试使用以下命令传输 iostat、mongostat 等实用程序的输出:
$ iostat -d 1 | ./script.py
我在其中使用代码:
for line in sys.stdin:
print line
我看到它挂起并且没有将每一行打印到控制台。 如果我 运行 没有标志每秒重复一次 '-d 1' 输出只发生一次,脚本将按预期运行。
$ 统计 | ./script.py
正在缓冲数据,您可以在sys.stdout.readline
上调用iter
:
import sys
for line in iter(sys.stdin.readline,""):
print line
运行 iostat
它自己只输出几行,iostat -d 1
连续循环以便数据得到缓冲。