(フォローアップを更新します...)
urlretrieve要求を使用して、「コールバック」方式を作成します:進捗状況をダウンロード
次のように詳細なコードは次のとおりです。
#!/ユーザー/ビンENV Pythonの #1 著者:シンプル・サー #時間:2019年8月8日21時00分 #のダウンロードの進捗状況 から urllibはのインポート要求 のインポート時間 DEF :downPercent(blocknum、ブロック・サイズtotalSize) '' ' コールバック関数、進捗ダウンロード PARAM blockNum:ダウンロードしたデータ・ブロックを :PARAMのblockSize:データ・ブロック・サイズ :PARAM totalSize:合計ファイルサイズをダウンロードする '' ' 撃墜 = blocknum *のblockSize / 1024 #ダウンロードサイズキロバイト totalSize = totalSize / 1024 #総サイズkBの P-ラウンド=(ダウン/ totalSize * 100,2) #ダウンロードした割合 = totalSize-ダウンdownWaitの #をダウンロードするサイズkBの IF P> 100 : P = 100 IF downWait < 0: downWait = 0 nowtime = time.strftime(' %Y-M-%のDの%% H:%M:%のS ' 、time.localtime(time.time())) プリント(' {}総ファイルサイズ:{} ' .format(nowtime、totalSize)) プリント(' ダウンロードを{}:{}(\ 033 [36万回{ 033 [0メートル)\%} ' .format(nowtime、ダウン、P)) プリント(' 033 \ {}([31であり; 1Mの%} {033 [0メートル\):ダウンロードします{} '.format(nowtime、downWait、ラウンド(100-P、2 ))) DEFのダウンロード(): URL = ' https://cdn.mysql.com//Downloads/MySQLInstaller/mysql-installer-community-5.7.27.0。 MSI ' #MySQLデータベースダウンロードし たstartTime = time.time() request.urlretrieve(URL、' MySQLの-インストーラコミュニティコミュニティ5.7.27.0.msi 'downPercent) endTimeは = time.time() 印刷(' ファイルのダウンロードを完了しています!合計時間: 'time.strftime( ' %のM:%S '、time.localtime(endTime- のstartTime)))IF __name__ == ' __main__ ' : ダウンロード()
実装プロセス: