“的替代方案;extractall();python版本2.4中tarfile模块的
pythonv2.4中不存在的tarfile模块中的“的替代方案;extractall();python版本2.4中tarfile模块的,python,compatibility,tarfile,Python,Compatibility,Tarfile,pythonv2.4中不存在的tarfile模块中的extractall() 您能推荐其他方法来提取Python v2.4中的tarfile吗?Python 2.4中存在tarfile模块: 从模块文档中引用: 版本2.3中的新功能 它是一个纯python模块,因此它没有可能阻止安装它的C库依赖项 TarFile.extractall()函数易于后端口: import copy import operator import os.path from tarfile import Extract
extractall()
您能推荐其他方法来提取Python v2.4中的tarfile吗?Python 2.4中存在
tarfile
模块:
从模块文档中引用:
版本2.3中的新功能
它是一个纯python模块,因此它没有可能阻止安装它的C库依赖项
TarFile.extractall()
函数易于后端口:
import copy
import operator
import os.path
from tarfile import ExtractError
def extractall(tfile, path=".", members=None):
directories = []
if members is None:
members = tfile
for tarinfo in members:
if tarinfo.isdir():
# Extract directories with a safe mode.
directories.append(tarinfo)
tarinfo = copy.copy(tarinfo)
tarinfo.mode = 0700
tfile.extract(tarinfo, path)
# Reverse sort directories.
directories.sort(key=operator.attrgetter('name'))
directories.reverse()
# Set correct owner, mtime and filemode on directories.
for tarinfo in directories:
dirpath = os.path.join(path, tarinfo.name)
try:
tfile.chown(tarinfo, dirpath)
tfile.utime(tarinfo, dirpath)
tfile.chmod(tarinfo, dirpath)
except ExtractError, e:
if tfile.errorlevel > 1:
raise
else:
tfile._dbg(1, "tarfile: %s" % e)
抱歉-快速检查显示版本2.5中有新功能。反对一切 你必须:
import tarfile
tf = tarfile.TarFile("YourTarFile.tar")
members = tf.getmembers()
for member in members:
where_to_put_it = "*somthing based on the member path probably!*"
print 'Extracting', member
tf.extract(member, where_to_put_it)