栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

使用Python提取ZipFile,显示进度百分比?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用Python提取ZipFile,显示进度百分比?

extract方法没有为此提供回调,因此必须使用它

getinfo
来获取e的未压缩大小,然后以块为单位打开从文件中读取的文件,然后将其写入到您要删除的文件中并更新百分比如果需要的话,还必须还原mtime:

import zipfilez = zipfile.ZipFile(some_source)entry_info = z.getinfo(entry_name)i = z.open(entry_name)o = open(target_name, 'w')offset = 0while True:    b = i.read(block_size)    offset += len(b)    set_percentage(float(offset)/float(entry_info.file_size) * 100.)    if b == '':        break    o.write(b)i.close()o.close()set_attributes_from(entry_info)

提取

entry_name
target_name


大部分操作也是通过此操作完成的,

shutil.copyfileobj
但也没有回呼进度

ZipFile.extract
方法调用的源
_extract_member
使用:

source = self.open(member, pwd=pwd)target = file(targetpath, "wb")shutil.copyfileobj(source, target)source.close()target.close()

如果成员不是ZipInfo对象,

getinfo(member)
则该成员已从名称转换为ZipInfo对象



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/669641.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号