python - 管道 python3 输出到 dzen2

标签 python linux pipe

我尝试将 python3 的一些输出通过管道传输到 dzen2,但 dzen 不会更新。

在庆典中:

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-循环.sh | dzen2 从 0 到 ... 计数的黑条

最佳答案

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

关于python - 管道 python3 输出到 dzen2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23407915/

相关文章:

python - 不对称切片python

c++ - 为什么此代码会导致段错误?

c - linux C select()永远不会返回0

python - python 模块常量的重要性

python - 从 Python 中的大文件中删除重复行

python - 在 python 中查找所有窗口的 exe 路径

python - crontab 无法正确执行 python 脚本?

C Programming w/Pipes 奇怪地打印到 STDOUT

c - 管道/ fork 有问题。说明书看不懂一半(man)