首頁 > 軟體

分享5個方便好用的Python自動化指令碼

2022-03-01 16:00:35

前言:

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

程式設計世界裡有各種各樣的自動化指令碼,來完成不同的任務。尤其Python非常適合編寫自動化指令碼,因為它語法簡潔易懂,而且有豐富的第三方工具庫。這次我們使用Python來實現幾個自動化場景,或許可以用到你的工作中。

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 articlen"))
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("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、自動化資料探索

資料探索是資料科學專案的第一步,你需要了解資料的基本資訊才能進一步分析更深的價值。

一般我們會用pandasmatplotlib等工具來探索資料,但需要自己編寫大量程式碼,如果想提高效率,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 Remembern")
text = input("Releated Messagen")
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能實現的自動化功能非常豐富,如果你可以“偷懶”的需求場景不妨試試。

到此這篇關於分享5個方便好用的Python自動化指令碼的文章就介紹到這了,更多相關Python自動化指令碼內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com