将POST请求中的zip文件写入文件

时间:2019-01-23 20:42:52

标签: python python-2.7 python-requests

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文件写入文件系统上的实际文件。我整天都在搜寻,但这似乎是一个保密的秘密。

1 个答案:

答案 0 :(得分:0)

ZipFile实例应具有.fp属性,在您的情况下,该属性将指向保存您的内容的StringIO.StringIO(通常,它应该是{{ 1}}),因此:

ZipFile

应该做到这一点。 ;)