Python 2.7
我具有以下功能:
def download(args):
payload = {'foo': args.foo,
'bar': args.bar, 'baz': args.baz}
try:
r = requests.post(URL, data=payload, verify='chain.crt')
except requests.ConnectionError:
raise
if r.status_code == requests.codes.ok:
if r.content is not None:
with closing(r), zipfile.ZipFile(StringIO.StringIO(r.content)) as zip:
zip.printdir()
# Save file as file name provided by argparse: args.filename
# here
else:
return False
此脚本在页面上执行发布操作,该操作将返回一个zip文件。我可以获得文件,但是我一生都无法弄清楚如何将内存中的zip文件写入文件系统上的实际文件。我整天都在搜寻,但这似乎是一个保密的秘密。
答案 0 :(得分:0)
ZipFile
实例应具有.fp
属性,在您的情况下,该属性将指向保存您的内容的StringIO.StringIO
(通常,它应该是{{ 1}}),因此:
ZipFile
应该做到这一点。 ;)