以下示例Python程序打印更新进度条。
progress.py :
import sys
import time
for i in range(100):
sys.stdout.write("\r%3d%%" % (i + 1))
sys.stdout.flush()
time.sleep(.02)
sys.stdout.write("\n")
但是,当使用以下Makefile通过GNU Make(来自Ubuntu上的Bash)运行它时,输出似乎是缓冲的,直到遇到换行符,因此进度更新不可见。为了确保无限输出是为Python指定的。
all :
python -u progress.py
使用make?
时,有没有办法让部分线输出立即可见?答案 0 :(得分:2)
我最终将此跟踪到make
已colormake
中的/etc/bash.bashrc
别名。
> type make
make is aliased to `colormake'
似乎colormake
缓冲输出。据推测,它需要在着色之前解析整行。
这是通过添加:
来解决的unalias make
到~/.bashrc
。
> type make
make is /usr/bin/make