用Python下载文件

2 投票
3 回答
1851 浏览
提问于 2025-04-16 12:57

当我想用这段代码在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'),这样一切就能正常工作了。

撰写回答