我想在特定的位置解压缩一个 bz2
压缩的文件夹。我可以通过以下方式看到其中的数据:
handler = bz2.BZ2File(path, 'r')
print handler.read()
我希望能够将这个压缩文件夹中的所有文件提取到一个由用户指定的位置,并保持文件夹内部的目录结构。
我对这门语言还比较陌生...请帮忙...
我想在特定的位置解压缩一个 bz2
压缩的文件夹。我可以通过以下方式看到其中的数据:
handler = bz2.BZ2File(path, 'r')
print handler.read()
我希望能够将这个压缩文件夹中的所有文件提取到一个由用户指定的位置,并保持文件夹内部的目录结构。
我对这门语言还比较陌生...请帮忙...
BZ2与gzip一样,只能压缩单个文件,不能归档一个目录结构。我猜测你手头拥有的是一个由软件(如tar)首先创建的归档文件,然后再用BZ2进行压缩。为了恢复“完整的目录结构”,需要先解压缩Bz2文件,然后解压缩(或等效)文件。
幸运的是,Python的tarfile模块支持bz2选项,因此您可以一次完成此过程。
您需要使用tarfile模块来解压缩.tar.bz2
文件...从这里的文档中,您可以了解如何进行操作:
import tarfile
tar = tarfile.open(path, "r:bz2")
for tarinfo in tar:
print tarinfo.name, "is", tarinfo.size, "bytes in size and is",
if tarinfo.isreg():
print "a regular file."
# read the file
f = tar.extractfile(tarinfo)
print f.read()
elif tarinfo.isdir():
print "a directory."
else:
print "something else."
tar.close()