I am currently doing a course on machine learning in UDACITY . In there they have written some code in python 2.7 but as i am currently using python 3.5 , i am getting some error . This is the code
import urllib
url = "https://www.cs.cmu.edu/~./enron/enron_mail_20150507.tgz"
urllib.urlretrieve(url, filename="../enron_mail_20150507.tgz")
print ("download complete!")
I tried urllib.request .
import urllib
url = "https://www.cs.cmu.edu/~./enron/enron_mail_20150507.tgz"
urllib.request(url, filename="../enron_mail_20150507.tgz")
print ("download complete!")
But still gives me error .
urllib.request(url, filename="../enron_mail_20150507.tgz")
TypeError: 'module' object is not callable
I am using PyCharm as my IDE .
You'd use urllib.request.urlretrieve
. Note that this function "may become deprecated at some point in the future", so you might be better off using the less likely to be deprecated interface:
# Adapted from the source:
# https://hg.python.org/cpython/file/3.5/Lib/urllib/request.py#l170
with open(filename, 'wb') as out_file:
with contextlib.closing(urllib.request.urlopen(url)) as fp:
block_size = 1024 * 8
while True:
block = fp.read(block_size)
if not block:
break
out_file.write(block)
For small enough files, you could just read
and write
the whole thing and drop the loop entirely.