[英]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.