在Python中如何下载一个图片 在Python中使用使用@property与getter和setter 从Python中的字符串中删除特定字符 在Python中如何下载一个图片 您可以使用response.raw文件对象,也可以遍历响应。 response.raw默认情况下,使用类文件对象不会解码压缩响应(使用GZIP或deflate)。你可以迫使它通过设置解压反正你decode_content属性True(requests将其设置为False控制解码本身)。然后,您可以使用shutil.copyfileobj()Python将数据流传输到文件对象: import requests import shutil r = requests.get(settings.STATICMAP_URL.format(**data), stream=True) if r.status_code == 200: with open(path, 'wb') as f: r.raw.decode_content = True shutil.copyfileobj(r.raw, f) 要迭代响应,请使用循环; 像这样迭代可确保数据在此阶段解压缩: r = requests.get(settings.STATICMAP_URL.format(**data), stream=True) if r.status_code == 200: with open(path, 'wb') as f: for chunk in r: f.write(chunk) 这将以128字节的块读取数据; 如果您觉得另一个块大小效果更好,请使用具有自定义块大小的Response.iter_content()方法: r = requests.get(settings.STATICMAP_URL.format(**data), stream=True) if r.status_code == 200: with open(path, 'wb') as f: for chunk in r.iter_content(1024): f.write(chunk) 请注意,您需要以二进制模式打开目标文件,以确保python不会尝试为您翻译换行符。我们还设置stream=True为requests不首先将整个图像下载到内存中。 在Python中使用使用@property与getter和setter 从Python中的字符串中删除特定字符