Скачивание файла в Python - PullRequest
       5

Скачивание файла в Python

2 голосов
/ 11 ноября 2010
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()

Мне интересно, как отобразить имя и размер файла перед загрузкой и как отобразить ход загрузки файла.Любая помощь будет оценена.

Ответы [ 2 ]

5 голосов
/ 11 ноября 2010

с использованием 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

1 голос
/ 11 ноября 2010

Чтобы отобразить имя файла: print f.name

Чтобы увидеть все интересные вещи, которые вы можете сделать с файлом: dir(f)

Я не уверен, что знаю, что вы имеете в виду, когдаВы говорите:

how to display how long it has before the file is finished downloading

Если вы хотите отобразить время, которое потребовалось для загрузки, то вы можете взглянуть на модуль timeit.

Если это не такчто вы ищете, тогда, пожалуйста, обновите вопрос, чтобы я мог попытаться дать вам лучший ответ

...