繁体   English   中英

使用python从服务器获取一组zip文件作为zip文件

[英]Getting set of pdf files as a zip file from a server using python

我正在尝试使用以下python代码获取一组以zip文件形式存在于服务器中的pdf文件。 但是我无法这样做,有人可以帮我解决这个问题。 我在此代码中提供的任何awb都将它们保存在一个zip文件中。

提前致谢。

import requests
import json

def downloadLabels(awbs):
    if awbs:
        url = 'http://<server's ip>/Labels/downloadLabels'
        resp = requests.post(url, data={'files': json.dumps(','.join(awbs))})
        print resp.json()
    else:
        print "NO AWB Provided"

downloadLabels(['1234','6789','1011'])

awb是一个用逗号分隔的数字列表,只有使用awbs,我们才会在服务器中获取这些pdf。

首先,您应该尝试获取每个pdf的二进制内容

http://docs.python-requests.org/en/latest/user/quickstart/#binary-response-content中的请求文档给出了代码示例:

>>> from PIL import Image
>>> from StringIO import StringIO
>>> i = Image.open(StringIO(r.content))

在您的情境中,您只需通过resp.content即可获取二进制内容

然后,您可以将每个pdf写入zip文件

zipfile是执行此类工作的标准库。 您只需要创建一个可写的Zipfile对象,并将pdfs写入此Zipfile对象。 我认为writestr函数可以将文件内容作为二进制字符串,并将这些内容写入zipfile。

代码可能看起来像这样:

with ZipFile('zipfilename.zip', 'w') as myzip:
    myzip.writestr('nameinthezipfile', resp.content)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM