我在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
答案 0 :(得分: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()
它按预期工作。