作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
给定包含多个目录的 tarball,如何提取单个特定目录?
import tarfile
tar = tarfile.open("/path/to/tarfile.tar.gz")
tar.list()
... rootdir/subdir_1/file_1.ext
... rootdir/subdir_1/file_n.ext
... rootdir/subdir_2/file_1.ext
等等
如何从 subdir_2 中提取文件?
注意:整个操作是在内存中完成的...
import tarfile, urllib2, StringIO
data = urllib2.urlopen(url)
tar = tarfile.open(mode = 'r|*', fileobj = StringIO.StringIO(data.read()))
...因此将所有内容提取到磁盘并移动必要的文件夹是不可行的。
最佳答案
你似乎已经快到了 - 我认为你可以使用 getnames()
的内容并将其与 extractfile() 结合起来处理内存中的文件,例如:
import re
files = (file for file in tar.getnames() if file.startswith('rootdir/'))
关于Python:从 tarball 中解压单个文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20938752/
我是一名优秀的程序员,十分优秀!