скачать файл на питоне - PullRequest
2 голосов
/ 03 марта 2011

когда я хочу скачать JPEG в Python с этим кодом:

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

файл на жестком диске не читается, но когда я открываю JPEG в Mozilla, все в порядке, я использую windows и python 2.6 некоторые решения? спасибо

Ответы [ 3 ]

8 голосов
/ 03 марта 2011

Вы открываете файл в текстовом режиме и портите его. Python интерпретирует определенные последовательности байтов как символы EOL и записывает их как соответствующие EOL для этой операционной системы. Вы должны указать Python открыть файл назначения в двоичном режиме.

Измените d = open(dest,'w') на d = open(dest,'wb'), и все будет работать.

6 голосов
/ 03 марта 2011

для 2.x?

import urllib
urllib.urlretrieve(url)
5 голосов
/ 03 марта 2011

Попробуйте открыть выходной файл в двоичном режиме:

d = open(dest,'wb')

(Это имеет значение только в Windows или в Python 3.x. Вы, очевидно, используете Python 2.x, но, возможно, используете Windows).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...