對python中的six.moves模塊的下載函數(shù)urlretrieve詳解
實驗環(huán)境:windows 7,anaconda 3(python 3.5),tensorflow(gpu/cpu)
函數(shù)介紹:所用函數(shù)為six.moves下的urllib中的函數(shù),調(diào)用如下urllib.request.urlretrieve(url,[filepath,[recall_func,[data]]])。簡單介紹一下,url是必填的指的是下載地址,filepath指的是保存的本地地址,recall_func指的是回調(diào)函數(shù),下載過程中會調(diào)用可以用來顯示下載進度。
實驗代碼:以下載cifar10的dataset和抓取斗魚首頁為例
下載cifar10的dataset,并解壓
from six.moves import urllib
import os
import sys
import tensorflow as tf
import tarfile
FLAGS = tf.app.flags.FLAGS#提取系統(tǒng)參數(shù)作用的變量
tf.app.flags.DEFINE_string('dir','D:/download_html','directory of html')#將下載目錄保存到變量dir中,通過FLAGS.dir提取
directory = FLAGS.dir#從FLAGS中提取dir變量
url = 'http://www.cs.toronto.edu/~kriz/cifar-10-binary.tar.gz'
filename = url.split('/')[-1]#-1表示分割后的最后一個元素
filepath = os.path.join(directory,filename)
if not os.path.exists(directory):
os.makedirs(directory)
if not os.path.exists(filepath):
def _recall_func(num,block_size,total_size):
sys.stdout.write('\r>> downloading %s %.1f%%' % (filename,float(num*block_size)/float(total_size)*100.0))
sys.stdout.flush()
urllib.request.urlretrieve(url,filepath,_recall_func)
print()
file_info = os.stat(filepath)
print('Successfully download',filename,file_info.st_size,'bytes')
tar = tarfile.open(filepath,'r:gz')#指定解壓路徑和解壓方式為解壓gzip
tar.extractall(directory)#全部解壓

抓取斗魚首頁
from six.moves import urllib
import os
import sys
import tensorflow as tf
FLAGS = tf.app.flags.FLAGS#提取系統(tǒng)參數(shù)作用的變量
tf.app.flags.DEFINE_string('dir','D:/download_html','directory of html')#將下載目錄保存到變量dir中,通過FLAGS.dir提取
directory = FLAGS.dir#從FLAGS中提取dir變量
url = 'http://www.douyu.com/'
filename = 'douyu.html'#保存成你想要的名字,這里保存成douyu.html
filepath = os.path.join(directory,filename)
if not os.path.exists(directory):
os.makedirs(directory)
if not os.path.exists(filepath):
def _recall_func(num,block_size,total_size):
sys.stdout.write('\r>> downloading %s %.1f%%' % (filename,float(num*block_size)/float(total_size)*100.0))
sys.stdout.flush()
urllib.request.urlretrieve(url,filepath,_recall_func)
print()
file_info = os.stat(filepath)#獲取文件信息
print('Successfully download',filename,file_info.st_size,'bytes')#.st_size文件的大小,以字節(jié)為單位


以上這篇對python中的six.moves模塊的下載函數(shù)urlretrieve詳解就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
如何用python開發(fā)Zeroc Ice應(yīng)用
這篇文章主要介紹了如何用python開發(fā)Zeroc Ice應(yīng)用,幫助大家更好的理解和使用python,感興趣的朋友可以了解下2021-01-01
淺析Python中壓縮zipfile與解壓縮tarfile模塊的使用
Python?提供了兩個標準庫模塊來處理文件的壓縮和解壓縮操作:zipfile和tarfile,本文將分享?這兩個模塊的使用方法,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-10-10
python爬蟲 正則表達式使用技巧及爬取個人博客的實例講解
下面小編就為大家?guī)硪黄猵ython爬蟲 正則表達式使用技巧及爬取個人博客的實例講解。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-10-10
Python 等分切分數(shù)據(jù)及規(guī)則命名的實例代碼
這篇文章主要介紹了Python 等分切分數(shù)據(jù)及規(guī)則命名的實例代碼,代碼簡單易懂,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下2019-08-08
Python函數(shù)基礎(chǔ)實例詳解【函數(shù)嵌套,命名空間,函數(shù)對象,閉包函數(shù)等】
這篇文章主要介紹了Python函數(shù)基礎(chǔ),結(jié)合實例形式詳細分析了函數(shù)嵌套,命名空間,函數(shù)對象,閉包函數(shù)等相關(guān)概念、原理、用法及操作注意事項,需要的朋友可以參考下2019-03-03
Anaconda+VSCode配置tensorflow開發(fā)環(huán)境的教程詳解
Anaconda是一個開源的python發(fā)行版本,是現(xiàn)在比較流行的python數(shù)據(jù)科學(xué)平臺,可以對python的科學(xué)包做到有效管理。這篇文章主要介紹了Anaconda+VSCode配置tensorflow開發(fā)環(huán)境,需要的朋友可以參考下2020-03-03

