對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)文章
python3 實現(xiàn)的對象與json相互轉(zhuǎn)換操作示例
這篇文章主要介紹了python3 實現(xiàn)的對象與json相互轉(zhuǎn)換操作,結(jié)合實例形式分析了Python3使用json模塊針對json格式數(shù)據(jù)轉(zhuǎn)換操作的相關(guān)實現(xiàn)技巧,需要的朋友可以參考下2019-08-08
Python中列表和字符串常用的數(shù)據(jù)去重方法總結(jié)
關(guān)于數(shù)據(jù)去重,咱們這里簡單理解下,就是刪除掉重復(fù)的數(shù)據(jù),應(yīng)用的場景比如某些產(chǎn)品產(chǎn)生的大數(shù)據(jù),有很多重復(fù)的數(shù)據(jù),為了不影響分析結(jié)果,我們可能需要對這些數(shù)據(jù)進行去重,所以本文給大家總結(jié)了Python中列表和字符串常用的數(shù)據(jù)去重方法,需要的朋友可以參考下2023-11-11

