相比大家都聽過自動化生產線、自動化辦公等詞匯,在沒有人工干預的情況下,機器可以自己完成各項任務,這大大提升了作業效率,
編程世界里有各種各樣的自動化腳本,來完成不同的任務,
尤其Python非常適合撰寫自動化腳本,因為它語法簡潔易懂,而且有豐富的第三方工具庫,
這次我們使用Python來實作幾個自動化場景,或許可以用到你的作業中,
很多人學習蟒蛇,不知道從何學起, 很多人學習尋找python,掌握了基本語法之后,不知道在哪里的案例上手, 很多已經可能知道案例的人,卻不怎么去學習更多高深的知識, 這三類人,我給大家提供一個好的學習平臺,免費獲取視頻教程,電子書,以及課程的源代碼! QQ群:101677771 歡迎加入,一起討論學習
1、自動化閱讀網頁新聞
這個腳本能夠實作從網頁中抓取文本,然后自動化語音朗讀,當你想聽新聞的時候,這是個不錯的選擇,
代碼分為兩大部分,第一通過爬蟲抓取網頁文本呢,第二通過閱讀工具來朗讀文本,
需要的第三方庫:
Beautiful Soup - 經典的HTML/XML文本決議器,用來提取爬下來的網頁資訊
requests - 好用到逆天的HTTP工具,用來向網頁發送請求獲取資料
Pyttsx3 - 將文本轉換為語音,并控制速率、頻率和語音
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、自動生成素描草圖
這個腳本可以把彩色圖片轉化為鉛筆素描草圖,對人像、景色都有很好的效果,
而且只需幾行代碼就可以一鍵生成,適合批量操作,非常的快捷,
需要的第三方庫:
Opencv - 計算機視覺工具,可以實作多元化的影像視頻處理,有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、自動發送多封郵件
這個腳本可以幫助我們批量定時發送郵件,郵件內容、附件也可以自定義調整,非常的實用,
相比較郵件客戶端,Python腳本的優點在于可以智能、批量、高定制化地部署郵件服務,
需要的第三方庫:
Email - 用于管理電子郵件訊息
Smtlib - 向SMTP服務器發送電子郵件,它定義了一個 SMTP 客戶端會話物件,該物件可將郵件發送到互聯網上任何帶有 SMTP 或 ESMTP 監聽程式的計算機
Pandas - 用于資料分析清洗地工具
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("[email protected]","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、自動化資料探索
資料探索是資料科學專案的第一步,你需要了解資料的基本資訊才能進一步分析更深的價值,
一般我們會用pandas、matplotlib等工具來探索資料,但需要自己撰寫大量代碼,如果想提高效率,Dtale是個不錯的選擇,
Dtale特點是用一行代碼生成自動化分析報告,它結合了Flask后端和React前端,為我們提供了一種查看和分析Pandas資料結構的簡便方法,
我們可以在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、自動桌面提示
這個腳本會自動觸發windows桌面通知,提示重要事項,比如說:您已作業兩小時,該休息了
我們可以設定固定時間提示,比如隔10分鐘、1小時等
用到的第三方庫:
win10toast - 用于發送桌面通知的工具
from win10toast import ToastNotifier
import time
toaster = ToastNotifier()
header = input("What You Want Me To Remember\n")
text = input("Releated Message\n")
time_min=float(input("In how many minutes?\n"))
time_min = time_min * 60
print("Setting up reminder..")
time.sleep(2)
print("all set!")
time.sleep(time_min)
toaster.show_toast(f"{header}", f"{text}", duration=10, threaded=True)
while toaster.notification_active(): time.sleep(0.005)
小結
Python能實作的自動化功能非常豐富,如果你可以“偷懶”的需求場景不妨試試,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/423636.html
標籤:其他
下一篇:Java中如何遍歷字串呢?
