分享4個方便且好用的Python自動化腳本
前言
相比大家都聽過自動化生產(chǎn)線、自動化辦公等詞匯,在沒有人工干預(yù)的情況下,機(jī)器可以自己完成各項任務(wù),這大大提升了工作效率。
編程世界里有各種各樣的自動化腳本,來完成不同的任務(wù)。
尤其Python非常適合編寫自動化腳本,因為它語法簡潔易懂,而且有豐富的第三方工具庫。
這次我們使用Python來實現(xiàn)幾個自動化場景,或許可以用到你的工作中。
1、自動化閱讀網(wǎng)頁新聞
這個腳本能夠?qū)崿F(xiàn)從網(wǎng)頁中抓取文本,然后自動化語音朗讀,當(dāng)你想聽新聞的時候,這是個不錯的選擇。
代碼分為兩大部分,第一通過爬蟲抓取網(wǎng)頁文本呢,第二通過閱讀工具來朗讀文本。
需要的第三方庫:
- Beautiful Soup - 經(jīng)典的HTML/XML文本解析器,用來提取爬下來的網(wǎng)頁信息
- requests - 好用到逆天的HTTP工具,用來向網(wǎng)頁發(fā)送請求獲取數(shù)據(jù)
- Pyttsx3 - 將文本轉(zhuǎn)換為語音,并控制速率、頻率和語音
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、自動生成素描草圖
這個腳本可以把彩色圖片轉(zhuǎn)化為鉛筆素描草圖,對人像、景色都有很好的效果。
而且只需幾行代碼就可以一鍵生成,適合批量操作,非常的快捷。
需要的第三方庫:
Opencv - 計算機(jī)視覺工具,可以實現(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、自動發(fā)送多封郵件
這個腳本可以幫助我們批量定時發(fā)送郵件,郵件內(nèi)容、附件也可以自定義調(diào)整,非常的實用。
相比較郵件客戶端,Python腳本的優(yōu)點在于可以智能、批量、高定制化地部署郵件服務(wù)。
需要的第三方庫:
Email - 用于管理電子郵件消息
Smtlib - 向SMTP服務(wù)器發(fā)送電子郵件,它定義了一個 SMTP 客戶端會話對象,該對象可將郵件發(fā)送到互聯(lián)網(wǎng)上任何帶有 SMTP 或 ESMTP 監(jiān)聽程序的計算機(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、自動化數(shù)據(jù)探索
數(shù)據(jù)探索是數(shù)據(jù)科學(xué)項目的第一步,你需要了解數(shù)據(jù)的基本信息才能進(jìn)一步分析更深的價值。
一般我們會用pandas、matplotlib等工具來探索數(shù)據(jù),但需要自己編寫大量代碼,如果想提高效率,Dtale是個不錯的選擇。
Dtale特點是用一行代碼生成自動化分析報告,它結(jié)合了Flask后端和React前端,為我們提供了一種查看和分析Pandas數(shù)據(jù)結(jié)構(gòu)的簡便方法。
我們可以在Jupyter上實用Dtale。
需要的第三方庫:
Dtale - 自動生成分析報告
### 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、給大家分享一下自動化測試工具
1.Selenium
Selenium 可能是網(wǎng)頁應(yīng)用中最流行的開源自動化測試框架。起源于 2000 年,10 多年來不斷地完善,Selenium 成為許多 Web 自動化測試人員的選擇,尤其是那些有高級編程和腳本技能的人。Selenium 也成為了其他開源自動化測試工具比如 Katalon Studio,Watir,Protractor 和 Robot Framework 的核心框架。
Selenium 支持多系統(tǒng)環(huán)境(Windows,Mac,Linux)以及多種瀏覽器(Chrome,F(xiàn)ireFox,IE 以及無頭瀏覽器(沒有界面))。它的腳本可以由各種各樣的編程語言編寫,比如 Java,Groovy,Python,C#,PHP,Ruby 以及 Perl。
因為 Selenium 的靈活性,測試人員可以寫各種復(fù)雜的、高級的測試腳本來應(yīng)對各種復(fù)雜的問題,它需要高級的編程技能和付出來構(gòu)建滿足自己需求的自動化測試框架和庫。
2. Robot framework
Robot Framework 是一個開源的自動化測試框架,它實現(xiàn)了關(guān)鍵字測試驅(qū)動來實現(xiàn)測試驅(qū)動開發(fā)(ATDD)。Robot Framework 為不同的自動化測試需求提供了不同的框架。它的測試能力可以通過 Python 和 Java 測試庫得到擴(kuò)展。Selenium WebDriver 是 Robot Framework 中內(nèi)置的流行庫。
3. Katalon Studio
Katalon Studio 是一個在網(wǎng)頁應(yīng)用、移動和網(wǎng)頁服務(wù)方面功能強(qiáng)大的自動化測試解決方案?;?Selenium 和 Appium 框架,Katalon Studio 集成了這些框架在軟件自動化方面的優(yōu)點。
這個工具支持不同層次的測試技能集。非程序員也可以快速上手一個自動化測試項目(如使用間諜對象記錄測試腳本),同時也節(jié)省了程序員和高級測試人員構(gòu)建新庫和維護(hù)腳本的時間。
Katalon Studio 可以集成到 CI/CD 過程中,而且兼容流行的質(zhì)量處理工具,包括 qTest,JIRA,Jenkins 和 Git。它提供了一個很好的功能叫Katalon 分析,通過指標(biāo)和圖表向用戶提供全面的測試報告。
python自動化測試就相當(dāng)你有在擁有了這些工具的基礎(chǔ)上,還擁有了自己的一座代碼“工廠”,需要什么工具直接從工廠里去拿來直接用。
總結(jié)
到此這篇關(guān)于Python自動化腳本的文章就介紹到這了,更多相關(guān)Python自動化腳本內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
安裝pyecharts1.8.0版本后導(dǎo)入pyecharts模塊繪圖時報錯: “所有圖表類型將在 v1.9.0 版本開始
這篇文章主要介紹了安裝pyecharts1.8.0版本后導(dǎo)入pyecharts模塊繪圖時報錯: “所有圖表類型將在 v1.9.0 版本開始強(qiáng)制使用 ChartItem 進(jìn)行數(shù)據(jù)項配置 ”的解決方法,需要的朋友可以參考下2020-08-08一文秒懂python讀寫csv xml json文件各種騷操作
多年來,數(shù)據(jù)存儲的可能格式顯著增加,但是,在日常使用中,還是以 CSV 、 JSON 和 XML 占主導(dǎo)地位。 在本文中,我將與你分享在Python中使用這三種流行數(shù)據(jù)格式及其之間相互轉(zhuǎn)換的最簡單方法,需要的朋友可以參考下2019-07-07python實現(xiàn)在遍歷列表時,直接對dict元素增加字段的方法
今天小編就為大家分享一篇python實現(xiàn)在遍歷列表時,直接對dict元素增加字段的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-01-01python 通過logging寫入日志到文件和控制臺的實例
下面小編就為大家分享一篇python 通過logging寫入日志到文件和控制臺的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-04-04基于Python socket實現(xiàn)簡易網(wǎng)絡(luò)聊天室
本文主要介紹了基于Python socket實現(xiàn)簡易網(wǎng)絡(luò)聊天室,本文將通過pyqt5作為桌面應(yīng)用框架,socket作為網(wǎng)絡(luò)編程的框架,從而實現(xiàn)包括客戶端和服務(wù)端的網(wǎng)絡(luò)聊天室的GUI應(yīng)用,需要的可以參考一下2022-07-07python實現(xiàn)根據(jù)窗口標(biāo)題調(diào)用窗口的方法
這篇文章主要介紹了python實現(xiàn)根據(jù)窗口標(biāo)題調(diào)用窗口的方法,涉及Python操作窗口的技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-03-03