Python 请求:下载的图像文件二进制文件与原始文件不同



我正在使用Python请求从Web保存图像文件。但是,保存的文件与原始文件有点二进制不同,而且有点大。它仍然是一个有效的jpg文件,但被打乱了。

这是代码:

import requests
import shutil
import os
if __name__ == "__main__":
image_url = 'http://www.123.com/image.jpg'
filename = 'out.jpg'
username = 'myusername'
password = 'mypasword'
path = os.path.join('c:/', filename )
r = requests.get(image_url, auth=(username, password), stream=True)
if r.status_code == 200:
    with open(path, 'w') as f:
        r.raw.decode_content = False
        shutil.copyfileobj(r.raw, f)
print 'The End'

我做错了什么?

open(path, 'w')

应该是:

open(path, 'wb')

b用于"二进制"。这将确保 Python 不会尝试转换字符编码和换行符,并完全按照逐字节的方式读取或写入所有内容。

另请参阅open()文档

相关内容

  • 没有找到相关文章

最新更新