我需要复制zip文件,并希望打印进度。我已经设置了所有内容,以便它开始复制文件并输出进度。问题是它似乎在任何时候都不会停止。输出远远超过100%,我最终杀死了这个程序
这是我的密码:
def copyfileobjprogress(fsrc, fdst, callback, length=16 * 1024):
copied = 0
MAX = os.path.getsize(default_folder)
print(MAX)
while True:
with open(fsrc, 'rb') as s:
with open(fdst, 'wb') as d:
buf = s.read(length)
if not buf:
break
d.write(buf)
copied += len(buf)
callback(copied, MAX)
def percentage(copied, MAX):
print(copied / MAX *100)
第一个进行复制,第二个打印输出
问题是在
while True
循环中一次又一次地执行复制。您实际要做的是无休止地重复以下代码块:这意味着您打开2个文件,从头开始读取输入内容,所以存储在
buf
中的读取结果不是空的,所以您不会中断循环,然后写入输出文件,然后再次打开2个文件,读取输入内容您可以尝试的是先打开文件,然后在循环中读写,即
相关问题 更多 >
编程相关推荐