user601987
user601987

Reputation: 25

download file in python

when i want download jpeg in python with this code:

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

the file on hdd is not readable but when i open jpeg in mozilla its ok, i am using windows and python 2.6 some solutions? thanks

Upvotes: 2

Views: 1871

Answers (3)

Sean Vieira
Sean Vieira

Reputation: 160053

You are opening the file in text mode and corrupting it. Python is interpreting certain byte sequences as EOL characters and writing them out as the appropriate EOL for that operating system. You need to tell Python to open the destination file in binary mode.

Change d = open(dest,'w') to d = open(dest,'wb') and everything will just work.

Upvotes: 8

Jakob Bowyer
Jakob Bowyer

Reputation: 34718

For 2.x?

import urllib
urllib.urlretrieve(url)

Upvotes: 6

Sven Marnach
Sven Marnach

Reputation: 602575

Try opening the output file in binary mode:

d = open(dest,'wb')

(This only matters ion Windows or in Python 3.x. You are obviously using Python 2.x, but you might be on Windows).

Upvotes: 5

Related Questions