如何用R語言和Python制作任務(wù)進(jìn)度管理,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。
創(chuàng)新互聯(lián)專注于雁江網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠為您提供雁江營銷型網(wǎng)站建設(shè),雁江網(wǎng)站制作、雁江網(wǎng)頁設(shè)計(jì)、雁江網(wǎng)站官網(wǎng)定制、重慶小程序開發(fā)服務(wù),打造雁江網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供雁江網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。
一直覺得運(yùn)行代碼的時候,如果有一個提示任務(wù)運(yùn)行進(jìn)度的進(jìn)度條提示就好,很多時候我們的程序運(yùn)行時間普遍較長,如果程序運(yùn)行沒有任何提示,那簡直是一場噩夢,根本不知道到底是程序在偷懶還是真的卡住了,而如果再代碼里寫print函數(shù),循環(huán)較多的話,你的屏幕會被打印的提示文本瞬間刷屏。
后來經(jīng)過搜索,還真讓我發(fā)現(xiàn)了解決方法。今天給大家介紹兩個包,這兩個包可以做任務(wù)任務(wù)處理、進(jìn)程處理工作,編寫一些簡易的交互界面。
這里僅介紹簡單的用法,僅僅滿足我們?nèi)粘H蝿?wù)進(jìn)度提示即可。
library("tcltk")
library("tcltk2")
主要掌握以下兩個主要函數(shù):
tkProgressBar( title = "R progress bar", #任務(wù)進(jìn)度名稱 label = "", #任務(wù)進(jìn)度標(biāo)簽 min = 0, #初始進(jìn)度 max = 1, #末尾進(jìn)度 initial = 0, #起始位置 width = 300 #進(jìn)度條寬度 )
setTkProgressBar( pb, #可用進(jìn)度條 value, #進(jìn)度值 title = NULL, #標(biāo)題 label = NULL #標(biāo)簽 )
library("rvest")
library("downloader")
url<-"https://www.zhihu.com/question/35931586/answer/206258333"
link<- read_html(url)%>% html_nodes("div.RichContent-inner>span")%>% html_nodes("img")%>%html_attr("data-original") %>% na.omit
link<-link[seq(1,length(link),by=2)] %>% sample(size=10)
Name<-sub("https://pic\\d.zhimg.com/v2-","",link)
dir.create("D:/R/Image/zhihu0807")
setwd("D:/R/Image/zhihu0807")
plot.new()
pb<-tkProgressBar("進(jìn)度","已完成 %",0,100)
for(i in 1:length(link)){
info <- sprintf("已完成 %d%%",round(i*100/length(link)))
setTkProgressBar(pb,i*100/length(link),sprintf("進(jìn)度 (%s)",info),info)
download(link[i],Name[i], mode = "wb")
Sys.sleep(0.5)
}
close(pb)
#關(guān)閉進(jìn)度條(這個要等任務(wù)完成再寫,不要寫在函數(shù)里哈)
而tcltk2包則可以自定義更多的進(jìn)度條屬性和外觀界面,使得進(jìn)度條更具個性化。
library("tcltk2")
###開啟進(jìn)度條
root <- tktoplevel()
l1 <- tk2label(root)
pb1 <- tk2progress(root,length=300)
tkconfigure(pb1,value=0,maximum=9)
tkgrid(l1, row = 0)
tkgrid(pb1,row = 1)
plot.new()
for(index in 1:length(link)){
download(link[i],Name[i], mode = "wb")
Sys.sleep(0.5)
###進(jìn)度管理:
tkconfigure(l1, text = paste("Index",index))
tkconfigure(pb1,value=index-1)
Sys.sleep(0.5)
}
tkdestroy(root)
#關(guān)閉進(jìn)度條
是不是很人性化呀~~~以后運(yùn)行大型程序,再也不會心里沒底兒啦,看著進(jìn)度條就可以知道你的程序到底運(yùn)行到多少啦。
既然R語言可以執(zhí)行進(jìn)度管理,相比Python里面肯定也可以實(shí)現(xiàn)的,我找了一些,但是大部分都是基于Py2的,而且代碼量都不小,看到大塊的代碼我就害怕,最后找到一個代碼量算少的,簡單介紹一些,希望能給大家打來幫助。
import os
import re
import time
import sys
import urllib
import requests
import random
from bs4 import BeautifulSoup
url="https://www.zhihu.com/question/35931586/answer/206258333"
header = {'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.104 Safari/537.36'}
page=requests.get(url,headers=header)
soup=BeautifulSoup(page.text,'lxml')
link_list=[pip.get('data-original') for pip in soup.select("div[class='RichContent-inner'] span img")]
link_list=random.sample(link_list,10)
os.makedirs("D:/Python/zhihu0807")
os.chdir('D:/Python/zhihu0807')
for i in range(len(link_list)): name=re.findall(r"v2-.*?\.jpg",link_list[i])[0] urllib.request.urlretrieve(link_list[i],name) sys.stdout.write('\r') sys.stdout.write("%s%% |%s" %(int(i%len(link_list)), int(i%len(link_list))*'#')) sys.stdout.flush() time.sleep(0.5)
要想制作出專業(yè)美觀的任務(wù)進(jìn)度管理程序,有很多第三方包可以用,甚至可以自己寫帶有彈出功能的工具條,只是那樣就失去簡便性了, 感興趣的可以自行探索!
看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進(jìn)一步的了解或閱讀更多相關(guān)文章,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對創(chuàng)新互聯(lián)的支持。
網(wǎng)站題目:如何用R語言和Python制作任務(wù)進(jìn)度管理
標(biāo)題網(wǎng)址:http://aaarwkj.com/article8/gdsjop.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供域名注冊、營銷型網(wǎng)站建設(shè)、ChatGPT、網(wǎng)站導(dǎo)航、網(wǎng)站設(shè)計(jì)公司、定制開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)