将python3输出到dzen2

时间:2014-05-01 12:43:40

标签: python linux pipe

我尝试将一些输出从python3输入到dzen2,但是dzen不会更新。

bash中的

i=0; while true; do; echo $i; (( i++ )); sleep 1; done | dzen2

输出终端:

0
1
2
3...

在python中

import time
i=0
while True:
  print(i)
  i+=1
  time.sleep(1)

输出终端:

0
1
2
3...

python3 while.py | dzen2 黑空dzen2-bar

bash-loop.sh | dzen2 黑条从0到......

1 个答案:

答案 0 :(得分:1)

当python的输出为tty时,它行缓冲stdout。但是当它的输出是一个管道时,stdout是块缓冲的。这意味着python将保存所有数据,直到它有一个完整的块(1024字节,或512或4192,具体取决于您的系统)来编写。这是非常标准的。请参阅:stackoverflow.com/questions/107705/python-output-buffering