如何将原始数据存储到Python中的PNG文件中?

时间:2018-01-21 19:39:30

标签: python python-3.x encoding python-requests binaryfiles

>>> def qrcodegenerate(nbr):
...     res = requests.get("https://chart.googleapis.com/chart?cht=qr&chs=300x330&choe=UTF-8&chl="+str(nbr))
...     print(res.url)
...     data =res.text
...     with open("C:\wamp\www\Paymentapi\qrcode\qr_"+str(nbr)+'.png','w',encoding="utf-8") as f:
...             f.write(data)
...
>>> qrcodegenerate(5697)

这里我调用API来生成QR码,我想保存到PNG文件中。

正在生成QR码,但未正确保存。

1 个答案:

答案 0 :(得分:3)

PNG文件包含二进制数据,而不是UTF-8文本。

您需要做的是:

  1. 使用res.content(二进制)代替res.text(文字)。

  2. Open the file采用二进制模式(wb)而非文字模式(w),未指定编码。

  3. 生成的代码应如下所示:

    def qrcodegenerate(nbr):
        res = requests.get('https://chart.googleapis.com/chart?cht=qr&chs=300x330&choe=UTF-8&chl=' + str(nbr))
        print(res.url)
        data = res.content
        with open('...', 'wb') as f:
            f.write(data)