在python中下载文件

use*_*987 2 python download

当我想用这段代码在python中下载jpeg:

def download(url, dest):
    s = urllib2.urlopen(url)
    content = s.read()
    s.close()
    d = open(dest,'w')
    d.write(content)
    d.close()
Run Code Online (Sandbox Code Playgroud)

hdd上的文件是不可读的,但是当我在mozilla中打开jpeg时,我可以使用windows和python 2.6的一些解决方案吗?谢谢

Sea*_*ira 8

您正在以文本模式打开文件并破坏它.Python将某些字节序列解释为EOL字符,并将其写为适合该操作系统的EOL.您需要告诉Python以二进制模式打开目标文件.

更改d = open(dest,'w')d = open(dest,'wb'),一切都将只是工作.


Jak*_*yer 6

对于2.x?

import urllib
urllib.urlretrieve(url)
Run Code Online (Sandbox Code Playgroud)


Sve*_*ach 5

尝试以二进制模式打开输出文件:

d = open(dest,'wb')
Run Code Online (Sandbox Code Playgroud)

(这只适用于Windows或Python 3.x.您显然使用的是Python 2.x,但您可能使用的是Windows).