banner
andrewji8

Being towards death

Heed not to the tree-rustling and leaf-lashing rain, Why not stroll along, whistle and sing under its rein. Lighter and better suited than horses are straw sandals and a bamboo staff, Who's afraid? A palm-leaf plaited cape provides enough to misty weather in life sustain. A thorny spring breeze sobers up the spirit, I feel a slight chill, The setting sun over the mountain offers greetings still. Looking back over the bleak passage survived, The return in time Shall not be affected by windswept rain or shine.
telegram
twitter
github

5個方便好用的 Python 自動化腳本,拿來即用!

相比大家都听過自動化生產線、自動化辦公等詞彙,在沒有人工干預的情況下,機器可以自己完成各項任務,這大大提升了工作效率。
程式設計世界裡有各種各樣的自動化腳本,來完成不同的任務。

尤其 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 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)

image
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)

image
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)

image

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。