首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python tarfile进度

Python tarfile进度
EN

Stack Overflow用户
提问于 2011-01-18 06:23:19
回答 5查看 3.1K关注 0票数 4

在python中将文件添加到tar存档时,是否有任何库可以显示进度,或者是否可以扩展tarfile模块的功能来实现这一点?

在理想的情况下,我想展示tar创建的总体进度,以及何时完成的ETA。

在这方面的任何帮助都将不胜感激。

EN

回答 5

Stack Overflow用户

发布于 2011-01-18 07:11:41

不幸的是,看起来没有一种简单的方法来逐字节数获取。

您是否要向此tar文件添加非常大的文件?如果没有,我将逐个文件地更新进度,以便在将文件添加到tar中时,根据每个文件的大小更新进度。

假设所有的文件名都在变量toadd中,并且tarfile是一个TarFile对象。怎么样,

代码语言:javascript
复制
from itertools import imap
from operator import attrgetter
# you may want to change this depending on how you want to update the
# file info for your tarobjs
tarobjs = imap(tarfile.getattrinfo, toadd)
total = sum(imap(attrgetter('size'), tarobjs))
complete = 0.0
for tarobj in tarobjs:
    sys.stdout.write("\rPercent Complete: {0:2.0d}%".format(complete))
    tarfile.add(tarobj)
    complete += tarobj.size / total * 100
sys.stdout.write("\rPercent Complete: {0:2.0d}%\n".format(complete))
sys.stdout.write("Job Done!")
票数 2
EN

Stack Overflow用户

发布于 2011-01-18 07:14:32

找到或编写一个类似于包装提供进度报告的真实文件的文件,并将其传递给Tarfile.addfile(),这样您就可以知道有多少字节被请求包含在归档中。您可能必须使用/实现节流,以防Tarfile尝试一次读取整个文件。

票数 2
EN

Stack Overflow用户

发布于 2011-06-30 03:55:47

我最近写了一个包装器库,它提供了进度回调。在git hub上看一下:

https://github.com/thomaspurchas/tarfile-Progress-Reporter

如果你需要的话,请随时寻求帮助。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4718588

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档