用Python下载文件
当我想用这段代码在Python中下载JPEG图片时:
def download(url, dest):
s = urllib2.urlopen(url)
content = s.read()
s.close()
d = open(dest,'w')
d.write(content)
d.close()
存储在硬盘上的文件无法读取,但我在Mozilla浏览器中打开JPEG文件时却没问题。我使用的是Windows系统和Python 2.6,有什么解决办法吗?谢谢!
3 个回答
5
试着以二进制模式打开输出文件:
d = open(dest,'wb')
(这在Windows系统或者Python 3.x中比较重要。你显然是在用Python 2.x,但你可能是在Windows上。)
6
对于2.x版本呢?
import urllib
urllib.urlretrieve(url)
8
你现在是以文本模式打开文件,这样会导致文件损坏。Python会把某些字节序列当作换行符来处理,然后根据你使用的操作系统把它们写成合适的换行符。你需要告诉Python以二进制模式打开目标文件。
把 d = open(dest,'w')
改成 d = open(dest,'wb')
,这样一切就能正常工作了。