我有一个小脚本来整理我下载的文件,它工作得很好,但我想打印出文件移动的进度,因为当它在处理大文件时,现在我做类似的事情:
print "moving..."
os.renames(pathTofile, newName)
print "done"
但我希望能够看到进度条([.....] 样式)或打印到标准输出的百分比。
我不需要/想要任何类型的图形用户界面,只是获得操作进度的最简单/最少工作 (:) ) 方式。
谢谢!
请您参考如下方法:
您将无法使用 os.renames 获得此类信息。最好的办法是用自制的文件复制操作替换它,但事先调用文件上的统计信息以获得完整的大小,这样你就可以跟踪你走了多远。
像这样:
source_size = os.stat(SOURCE_FILENAME).st_size
copied = 0
source = open(SOURCE_FILENAME, 'rb')
target = open(TARGET_FILENAME, 'wb')
while True:
chunk = source.read(32768)
if not chunk:
break
target.write(chunk)
copied += len(chunk)
print '\r%02d%%' % (copied * 100 / source_size),
source.close()
target.close()
但是请注意,这很可能比使用 os.rename 慢得多。
