import urllib2, sys
if len(sys.argv) !=3:
print "Usage: download.py <link> <saveas>"
sys.exit(1)
site = urllib2.urlopen(sys.argv[1])
meta = site.info()
print "Size: ", meta.getheaders("Content-Length")
f = open(sys.argv[2], 'wb')
f.write(site.read())
f.close()
Run Code Online (Sandbox Code Playgroud)
我想知道如何在下载之前显示文件名和大小以及如何显示文件的下载进度.任何帮助将不胜感激.
使用urllib.urlretrieve
import urllib, sys
def progress_callback(blocks, block_size, total_size):
#blocks->data downloaded so far (first argument of your callback)
#block_size -> size of each block
#total-size -> size of the file
#implement code to calculate the percentage downloaded e.g
print "downloaded %f%%" % blocks/float(total_size)
if len(sys.argv) !=3:
print "Usage: download.py "
sys.exit(1)
site = urllib.urlopen(sys.argv[1])
(file, headers) = urllib.urlretrieve(site, sys.argv[2], progress_callback)
print headers