|
好奇,搜索了以下Python写进度条的方法。搜到下面这个代码:
import os,sys,string
import time
def view_bar(num=1, sum=100, bar_word=":"):
rate = float(num) / float(sum)
rate_num = int(rate * 100)
print '\r%d%% :' %(rate_num),
for i in range(0, num):
os.write(1, bar_word)
sys.stdout.flush()
if __name__ == '__main__':
for i in range(0, 100):
time.sleep(0.1)
view_bar(i, 100)
觉得很奇怪。os.write(1,bar_word)这行明显不行啊,而且确实运行起来有问题。
Traceback (most recent call last):
File "C:\Python27\code\tryxml.py", line 14, in <module>
view_bar(i, 100)
File "C:\Python27\code\tryxml.py", line 9, in view_bar
os.write(1, bar_word)
OSError: [Errno 9] Bad file descriptor
求教,是我理解的问题还是本身就不是正解。那么如何用Python来实现进度条呢?比如我用一个工具进行解压文件(比如7zip),当然是用cmdline来执行。想另外写一个函数来表现其执行过程的进度条。如何做呢?
|
|