我正在尝试编写一个简单的工具,它可以从磁盘中读取文件,进行图像处理,并返回算法的结果。由于程序有时需要一些时间来运行,我想要一个进度条,以便了解程序的进行情况。由于我不喜欢在命令行界面上弄乱输出内容,而我又在 Unix 平台上,因此我希望使用 '\r' 字符只在一行上打印进度条。
但是当我运行这段代码时,它没有输出任何内容。
我也尝试过以下方法:
但是当我运行这段代码时,它没有输出任何内容。
# Files is a list with the filenames
for i, f in enumerate(files):
print '\r%d / %d' % (i, len(files)),
# Code that takes a long time
我也尝试过以下方法:
print '\r', i, '/', len(files),
现在为了确保这在Python中可以工作,我尝试了以下代码:
heartbeat = 1
while True:
print '\rHello, world', heartbeat,
heartbeat += 1
这段代码完美运行。出了什么问题?我对Linux上的回车符理解是它只会将换行符移到开头,然后我可以覆盖之前写入的旧文本,只要我不在任何地方打印换行符。但是这似乎并没有发生。
另外,在命令行中显示进度条是否有更好的方法,而不是我目前尝试的方式?