分享4個(gè)方便且好用的Python自動(dòng)化腳本
前言
相比大家都聽(tīng)過(guò)自動(dòng)化生產(chǎn)線、自動(dòng)化辦公等詞匯,在沒(méi)有人工干預(yù)的情況下,機(jī)器可以自己完成各項(xiàng)任務(wù),這大大提升了工作效率。
編程世界里有各種各樣的自動(dòng)化腳本,來(lái)完成不同的任務(wù)。
尤其Python非常適合編寫(xiě)自動(dòng)化腳本,因?yàn)樗Z(yǔ)法簡(jiǎn)潔易懂,而且有豐富的第三方工具庫(kù)。
這次我們使用Python來(lái)實(shí)現(xiàn)幾個(gè)自動(dòng)化場(chǎng)景,或許可以用到你的工作中。
1、自動(dòng)化閱讀網(wǎng)頁(yè)新聞
這個(gè)腳本能夠?qū)崿F(xiàn)從網(wǎng)頁(yè)中抓取文本,然后自動(dòng)化語(yǔ)音朗讀,當(dāng)你想聽(tīng)新聞的時(shí)候,這是個(gè)不錯(cuò)的選擇。
代碼分為兩大部分,第一通過(guò)爬蟲(chóng)抓取網(wǎng)頁(yè)文本呢,第二通過(guò)閱讀工具來(lái)朗讀文本。
需要的第三方庫(kù):
- Beautiful Soup - 經(jīng)典的HTML/XML文本解析器,用來(lái)提取爬下來(lái)的網(wǎng)頁(yè)信息
- requests - 好用到逆天的HTTP工具,用來(lái)向網(wǎng)頁(yè)發(fā)送請(qǐng)求獲取數(shù)據(jù)
- Pyttsx3 - 將文本轉(zhuǎn)換為語(yǔ)音,并控制速率、頻率和語(yǔ)音
import pyttsx3 import requests from bs4 import BeautifulSoup engine = pyttsx3.init('sapi5') voices = engine.getProperty('voices') newVoiceRate = 130 ? ? ? ? ? ? ? ? ? ? ? ## Reduce The Speech Rate engine.setProperty('rate',newVoiceRate) engine.setProperty('voice', voices[1].id) def speak(audio): ? engine.say(audio) ? engine.runAndWait() text = str(input("Paste article\n")) res = requests.get(text) soup = BeautifulSoup(res.text,'html.parser') articles = [] for i in range(len(soup.select('.p'))): ? ? article = soup.select('.p')[i].getText().strip() ? ? articles.append(article) text = " ".join(articles) speak(text) # engine.save_to_file(text, 'test.mp3') ## If you want to save the speech as a audio file engine.runAndWait()
2、自動(dòng)生成素描草圖
這個(gè)腳本可以把彩色圖片轉(zhuǎn)化為鉛筆素描草圖,對(duì)人像、景色都有很好的效果。
而且只需幾行代碼就可以一鍵生成,適合批量操作,非常的快捷。
需要的第三方庫(kù):
Opencv - 計(jì)算機(jī)視覺(jué)工具,可以實(shí)現(xiàn)多元化的圖像視頻處理,有Python接口
""" Photo Sketching Using Python """ ? import cv2 ? img = cv2.imread("elon.jpg") ? ## Image to Gray Image ? gray_image = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) ? ## Gray Image to Inverted Gray Image ? inverted_gray_image = 255-gray_image ? ## Blurring The Inverted Gray Image ? blurred_inverted_gray_image = cv2.GaussianBlur(inverted_gray_image, (19,19),0) ? ## Inverting the blurred image ? inverted_blurred_image = 255-blurred_inverted_gray_image ? ### Preparing Photo sketching ? sketck = cv2.divide(gray_image, inverted_blurred_image,scale= 256.0) ? cv2.imshow("Original Image",img) ? cv2.imshow("Pencil Sketch", sketck) ? cv2.waitKey(0)
3、自動(dòng)發(fā)送多封郵件
這個(gè)腳本可以幫助我們批量定時(shí)發(fā)送郵件,郵件內(nèi)容、附件也可以自定義調(diào)整,非常的實(shí)用。
相比較郵件客戶端,Python腳本的優(yōu)點(diǎn)在于可以智能、批量、高定制化地部署郵件服務(wù)。
需要的第三方庫(kù):
Email - 用于管理電子郵件消息
Smtlib - 向SMTP服務(wù)器發(fā)送電子郵件,它定義了一個(gè) SMTP 客戶端會(huì)話對(duì)象,該對(duì)象可將郵件發(fā)送到互聯(lián)網(wǎng)上任何帶有 SMTP 或 ESMTP 監(jiān)聽(tīng)程序的計(jì)算機(jī)
Pandas - 用于數(shù)據(jù)分析清洗地工具
import smtplib? from email.message import EmailMessage import pandas as pd def send_email(remail, rsubject, rcontent): ? ? email = EmailMessage() ? ? ? ? ? ? ? ? ? ? ? ? ?## Creating a object for EmailMessage ? ? email['from'] = 'The Pythoneer Here' ? ? ? ? ? ?## Person who is sending ? ? email['to'] = remail ? ? ? ? ? ? ? ? ? ? ? ? ? ?## Whom we are sending ? ? email['subject'] = rsubject ? ? ? ? ? ? ? ? ? ? ## Subject of email ? ? email.set_content(rcontent) ? ? ? ? ? ? ? ? ? ? ## content of email ? ? with smtplib.SMTP(host='smtp.gmail.com',port=587)as smtp: ? ?? ? ? ? ? smtp.ehlo() ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ## server object ? ? ? ? smtp.starttls() ? ? ? ? ? ? ? ? ? ? ? ? ? ? ## used to send data between server and client ? ? ? ? smtp.login("deltadelta371@gmail.com","delta@371") ## login id and password of gmail ? ? ? ? smtp.send_message(email) ? ? ? ? ? ? ? ? ? ?## Sending email ? ? ? ? print("email send to ",remail) ? ? ? ? ? ? ?## Printing success message if __name__ == '__main__': ? ? df = pd.read_excel('list.xlsx') ? ? length = len(df)+1 ? ? for index, item in df.iterrows(): ? ? ? ? email = item[0] ? ? ? ? subject = item[1] ? ? ? ? content = item[2] ? ? ? ? send_email(email,subject,content)
4、自動(dòng)化數(shù)據(jù)探索
數(shù)據(jù)探索是數(shù)據(jù)科學(xué)項(xiàng)目的第一步,你需要了解數(shù)據(jù)的基本信息才能進(jìn)一步分析更深的價(jià)值。
一般我們會(huì)用pandas、matplotlib等工具來(lái)探索數(shù)據(jù),但需要自己編寫(xiě)大量代碼,如果想提高效率,Dtale是個(gè)不錯(cuò)的選擇。
Dtale特點(diǎn)是用一行代碼生成自動(dòng)化分析報(bào)告,它結(jié)合了Flask后端和React前端,為我們提供了一種查看和分析Pandas數(shù)據(jù)結(jié)構(gòu)的簡(jiǎn)便方法。
我們可以在Jupyter上實(shí)用Dtale。
需要的第三方庫(kù):
Dtale - 自動(dòng)生成分析報(bào)告
### Importing Seaborn Library For Some Datasets import seaborn as sns ### Printing Inbuilt Datasets of Seaborn Library print(sns.get_dataset_names()) ### Loading Titanic Dataset df=sns.load_dataset('titanic') ### Importing The Library import dtale #### Generating Quick Summary dtale.show(df)
5、給大家分享一下自動(dòng)化測(cè)試工具
1.Selenium
Selenium 可能是網(wǎng)頁(yè)應(yīng)用中最流行的開(kāi)源自動(dòng)化測(cè)試框架。起源于 2000 年,10 多年來(lái)不斷地完善,Selenium 成為許多 Web 自動(dòng)化測(cè)試人員的選擇,尤其是那些有高級(jí)編程和腳本技能的人。Selenium 也成為了其他開(kāi)源自動(dòng)化測(cè)試工具比如 Katalon Studio,Watir,Protractor 和 Robot Framework 的核心框架。
Selenium 支持多系統(tǒng)環(huán)境(Windows,Mac,Linux)以及多種瀏覽器(Chrome,F(xiàn)ireFox,IE 以及無(wú)頭瀏覽器(沒(méi)有界面))。它的腳本可以由各種各樣的編程語(yǔ)言編寫(xiě),比如 Java,Groovy,Python,C#,PHP,Ruby 以及 Perl。
因?yàn)?Selenium 的靈活性,測(cè)試人員可以寫(xiě)各種復(fù)雜的、高級(jí)的測(cè)試腳本來(lái)應(yīng)對(duì)各種復(fù)雜的問(wèn)題,它需要高級(jí)的編程技能和付出來(lái)構(gòu)建滿足自己需求的自動(dòng)化測(cè)試框架和庫(kù)。
2. Robot framework
Robot Framework 是一個(gè)開(kāi)源的自動(dòng)化測(cè)試框架,它實(shí)現(xiàn)了關(guān)鍵字測(cè)試驅(qū)動(dòng)來(lái)實(shí)現(xiàn)測(cè)試驅(qū)動(dòng)開(kāi)發(fā)(ATDD)。Robot Framework 為不同的自動(dòng)化測(cè)試需求提供了不同的框架。它的測(cè)試能力可以通過(guò) Python 和 Java 測(cè)試庫(kù)得到擴(kuò)展。Selenium WebDriver 是 Robot Framework 中內(nèi)置的流行庫(kù)。
3. Katalon Studio
Katalon Studio 是一個(gè)在網(wǎng)頁(yè)應(yīng)用、移動(dòng)和網(wǎng)頁(yè)服務(wù)方面功能強(qiáng)大的自動(dòng)化測(cè)試解決方案?;?Selenium 和 Appium 框架,Katalon Studio 集成了這些框架在軟件自動(dòng)化方面的優(yōu)點(diǎn)。
這個(gè)工具支持不同層次的測(cè)試技能集。非程序員也可以快速上手一個(gè)自動(dòng)化測(cè)試項(xiàng)目(如使用間諜對(duì)象記錄測(cè)試腳本),同時(shí)也節(jié)省了程序員和高級(jí)測(cè)試人員構(gòu)建新庫(kù)和維護(hù)腳本的時(shí)間。
Katalon Studio 可以集成到 CI/CD 過(guò)程中,而且兼容流行的質(zhì)量處理工具,包括 qTest,JIRA,Jenkins 和 Git。它提供了一個(gè)很好的功能叫Katalon 分析,通過(guò)指標(biāo)和圖表向用戶提供全面的測(cè)試報(bào)告。
python自動(dòng)化測(cè)試就相當(dāng)你有在擁有了這些工具的基礎(chǔ)上,還擁有了自己的一座代碼“工廠”,需要什么工具直接從工廠里去拿來(lái)直接用。
總結(jié)
到此這篇關(guān)于Python自動(dòng)化腳本的文章就介紹到這了,更多相關(guān)Python自動(dòng)化腳本內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
安裝pyecharts1.8.0版本后導(dǎo)入pyecharts模塊繪圖時(shí)報(bào)錯(cuò): “所有圖表類型將在 v1.9.0 版本開(kāi)始
這篇文章主要介紹了安裝pyecharts1.8.0版本后導(dǎo)入pyecharts模塊繪圖時(shí)報(bào)錯(cuò): “所有圖表類型將在 v1.9.0 版本開(kāi)始強(qiáng)制使用 ChartItem 進(jìn)行數(shù)據(jù)項(xiàng)配置 ”的解決方法,需要的朋友可以參考下2020-08-08一文秒懂python讀寫(xiě)csv xml json文件各種騷操作
多年來(lái),數(shù)據(jù)存儲(chǔ)的可能格式顯著增加,但是,在日常使用中,還是以 CSV 、 JSON 和 XML 占主導(dǎo)地位。 在本文中,我將與你分享在Python中使用這三種流行數(shù)據(jù)格式及其之間相互轉(zhuǎn)換的最簡(jiǎn)單方法,需要的朋友可以參考下2019-07-07python實(shí)現(xiàn)在遍歷列表時(shí),直接對(duì)dict元素增加字段的方法
今天小編就為大家分享一篇python實(shí)現(xiàn)在遍歷列表時(shí),直接對(duì)dict元素增加字段的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-01-01python 通過(guò)logging寫(xiě)入日志到文件和控制臺(tái)的實(shí)例
下面小編就為大家分享一篇python 通過(guò)logging寫(xiě)入日志到文件和控制臺(tái)的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-04-04解決django 向mysql中寫(xiě)入中文字符出錯(cuò)的問(wèn)題
這篇文章主要介紹了解決django 向mysql中寫(xiě)入中文字符出錯(cuò)的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-05-05基于Python socket實(shí)現(xiàn)簡(jiǎn)易網(wǎng)絡(luò)聊天室
本文主要介紹了基于Python socket實(shí)現(xiàn)簡(jiǎn)易網(wǎng)絡(luò)聊天室,本文將通過(guò)pyqt5作為桌面應(yīng)用框架,socket作為網(wǎng)絡(luò)編程的框架,從而實(shí)現(xiàn)包括客戶端和服務(wù)端的網(wǎng)絡(luò)聊天室的GUI應(yīng)用,需要的可以參考一下2022-07-07python實(shí)現(xiàn)根據(jù)窗口標(biāo)題調(diào)用窗口的方法
這篇文章主要介紹了python實(shí)現(xiàn)根據(jù)窗口標(biāo)題調(diào)用窗口的方法,涉及Python操作窗口的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-03-03