程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

真香啊!5個方便好用的Python自動化腳本

編輯:Python

相比大家都聽過自動化生產線、自動化辦公等詞匯,在沒有人工干預的情況下,機器可以自己完成各項任務,這大大提升了工作效率。

編程世界裡有各種各樣的自動化腳本,來完成不同的任務。

尤其Python非常適合編寫自動化腳本,因為它語法簡潔易懂,而且有豐富的第三方工具庫。

這次我們使用Python來實現幾個自動化場景,或許可以用到你的工作中。

1、自動化閱讀網頁新聞

這個腳本能夠實現從網頁中抓取文本,然後自動化語音朗讀,當你想聽新聞的時候,這是個不錯的選擇。

代碼分為兩大部分,第一通過爬蟲抓取網頁文本呢,第二通過閱讀工具來朗讀文本。

需要的第三方庫:

Beautiful Soup - 經典的HTML/XML文本解析器,用來提取爬下來的網頁信息

requests - 好用到逆天的HTTP工具,用來向網頁發送請求獲取數據

Pyttsx3 - 將文本轉換為語音,並控制速率、頻率和語音

import pyttsx3import requestsfrom bs4 import BeautifulSoupengine = pyttsx3.init('sapi5')voices = engine.getProperty('voices')newVoiceRate = 130                       ## Reduce The Speech Rateengine.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 fileengine.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 EmailMessageimport pandas as pddef 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]","[email protected]") ## login id and password of gmail        smtp.send_message(email)                    ## Sending email        print("email send to ",remail)              ## Printing success messageif __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 Datasetsimport seaborn as sns### Printing Inbuilt Datasets of Seaborn Libraryprint(sns.get_dataset_names())### Loading Titanic Datasetdf=sns.load_dataset('titanic')### Importing The Libraryimport dtale#### Generating Quick Summarydtale.show(df)

5、自動桌面提示

這個腳本會自動觸發windows桌面通知,提示重要事項,比如說:您已工作兩小時,該休息了

我們可以設定固定時間提示,比如隔10分鐘、1小時等

用到的第三方庫:

win10toast - 用於發送桌面通知的工具

from win10toast import ToastNotifierimport timetoaster = 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 * 60print("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://medium.com/pythoneers/10-handy-automation-scripts-you-should-try-using-python-fc9450116938

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved