如何在python中获取文件移动的进度?

1 python

我有一个小脚本来整理我的下载文件,它工作得很好,但我想打印出文件移动的进度,因为当它做大的时候,现在我做了类似的事情:

print "moving..."
os.renames(pathTofile, newName)
print "done"
Run Code Online (Sandbox Code Playgroud)

但我希望能够看到类似进度条([.....]样式)或打印到stdout的百分比.

我不需要/想要任何类型的gui,只需要最简单/最少工作(:))的方式来获得操作进度.

谢谢!

Ben*_*nno 8

您将无法使用os.renames获取此类信息.您最好的选择是用本地文件复制操作替换它,但事先在文件上调用stat以获得完整的大小,以便您可以跟踪您的距离.

像这样的东西:

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()
Run Code Online (Sandbox Code Playgroud)

但请注意,这可能比使用os.rename明显慢.