0

Python(urllibまたはurllib2)を使用してWebサイトからファイルをダウンロードしたいダウンロード中にダウンロードの割合を表示したい。

#!usr/bin/env python
#-*- coding: latin1 -*-

import urllib

url = 'http://ww1.microchip.com/downloads/en/DeviceDoc/pk2cmdv1-20Linux2-6.tar.gz'
urllib.urlretrieve(url, "pickit.tar.gz")

どうすればこれを実装できますか?

4

3 に答える 3

1

次のコードが機能するはずです。

def download(url, local_file):
    def progress(blocks_read, block_size, total_size):
        percent = min(int(blocks_read * block_size * 100 / total_size), 100)
        sys.stdout.write("\rdownloading {}: {:2}%".format(local_file, percent))
        if percent == 100:
            sys.stdout.write('\n')
        sys.stdout.flush()

    urllib.urlretrieve(url, local_file, reporthook=progress)


# call download function
download("http://ww1.microchip.com/downloads/en/DeviceDoc/pk2cmdv1-20Linux2-6.tar.gz",
         "pickit.tar.gz")
于 2013-02-05T14:39:39.757 に答える
0

この回答には素晴らしいスニペットがあります。

要するに:

  1. content-lengthヘッダーを取得します
  2. データのチャンクを読み取る
  3. 計算パーセンテージ
  4. 完了するまで2と3を繰り返します
于 2013-02-05T14:31:56.403 に答える
0

代わりに「urllib2.urlopen(..)」を使用してヘッダーを読み取ると、探しているデータ(コンテンツの長さ)が含まれます。

良い例:Python:urllib2.urlopen呼び出しからHTTPヘッダーを取得しますか?

于 2013-02-05T14:30:00.477 に答える