1

我在 http post 请求的正文中得到一个 tar 文件,我想在不先将 tar 文件写入光盘的情况下提取内容。该文件曾经是一个 zip 文件,我可以这样做

zip = zipfile.ZipFile(StringIO(request.content.read()))
zip.extractall(some_path)

我如何使用 tarfile.TarFile 做同样的事情?

我试过

tar = tarfile.open(fileobj = StringIO(self.request.content.read()))

但收到错误消息:

file could not be opened successfully
4

1 回答 1

0

使用fileobj参数来tarfile.open

编辑:我尝试了以下方法:

# t.py
import tarfile
import StringIO

tarf = open('test.tar', 'rb')
tarstrio = StringIO.StringIO(tarf.read())
tar = tarfile.open(fileobj=tarstrio)

tar.list()

它按预期工作。

于 2012-10-03T09:06:06.553 回答