5個(gè)方便好用的Python自動(dòng)化腳本

相比大家都聽(tīng)過(guò)自動(dòng)化生產(chǎn)線、自動(dòng)化辦公等詞匯秋忙,在沒(méi)有人工干預(yù)的情況下,機(jī)器可以自己完成各項(xiàng)任務(wù)构舟,這大大提升了工作效率灰追。

編程世界里有各種各樣的自動(dòng)化腳本,來(lái)完成不同的任務(wù)狗超。

尤其Python非常適合編寫(xiě)自動(dòng)化腳本弹澎,因?yàn)樗Z(yǔ)法簡(jiǎn)潔易懂,而且有豐富的第三方工具庫(kù)努咐。

這次我們使用Python來(lái)實(shí)現(xiàn)幾個(gè)自動(dòng)化場(chǎng)景苦蒿,或許可以用到你的工作中。

1渗稍、自動(dòng)化閱讀網(wǎng)頁(yè)新聞

這個(gè)腳本能夠?qū)崿F(xiàn)從網(wǎng)頁(yè)中抓取文本佩迟,然后自動(dòng)化語(yǔ)音朗讀,當(dāng)你想聽(tīng)新聞的時(shí)候竿屹,這是個(gè)不錯(cuò)的選擇报强。

代碼分為兩大部分,第一通過(guò)爬蟲(chóng)抓取網(wǎng)頁(yè)文本呢拱燃,第二通過(guò)閱讀工具來(lái)朗讀文本秉溉。

需要的第三方庫(kù):

Beautiful Soup - 經(jīng)典的HTML/XML文本解析器,用來(lái)提取爬下來(lái)的網(wǎng)頁(yè)信息

requests - 好用到逆天的HTTP工具碗誉,用來(lái)向網(wǎng)頁(yè)發(fā)送請(qǐng)求獲取數(shù)據(jù)

Pyttsx3 - 將文本轉(zhuǎn)換為語(yǔ)音召嘶,并控制速率、頻率和語(yǔ)音

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哮缺、自動(dòng)生成素描草圖

這個(gè)腳本可以把彩色圖片轉(zhuǎn)化為鉛筆素描草圖弄跌,對(duì)人像、景色都有很好的效果尝苇。

而且只需幾行代碼就可以一鍵生成铛只,適合批量操作,非常的快捷茎匠。

需要的第三方庫(kù):

Opencv - 計(jì)算機(jī)視覺(jué)工具,可以實(shí)現(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诵冒、自動(dòng)發(fā)送多封郵件

這個(gè)腳本可以幫助我們批量定時(shí)發(fā)送郵件,郵件內(nèi)容谊惭、附件也可以自定義調(diào)整汽馋,非常的實(shí)用侮东。

相比較郵件客戶端,Python腳本的優(yōu)點(diǎn)在于可以智能豹芯、批量悄雅、高定制化地部署郵件服務(wù)。

需要的第三方庫(kù):

Email - 用于管理電子郵件消息

Smtlib - 向SMTP服務(wù)器發(fā)送電子郵件铁蹈,它定義了一個(gè) SMTP 客戶端會(huì)話對(duì)象宽闲,該對(duì)象可將郵件發(fā)送到互聯(lián)網(wǎng)上任何帶有 SMTP 或 ESMTP 監(jiān)聽(tīng)程序的計(jì)算機(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、自動(dòng)化數(shù)據(jù)探索

數(shù)據(jù)探索是數(shù)據(jù)科學(xué)項(xiàng)目的第一步握牧,你需要了解數(shù)據(jù)的基本信息才能進(jìn)一步分析更深的價(jià)值容诬。

一般我們會(huì)用pandas、matplotlib等工具來(lái)探索數(shù)據(jù)沿腰,但需要自己編寫(xiě)大量代碼览徒,如果想提高效率,Dtale是個(gè)不錯(cuò)的選擇颂龙。

Dtale特點(diǎn)是用一行代碼生成自動(dòng)化分析報(bào)告习蓬,它結(jié)合了Flask后端和React前端,為我們提供了一種查看和分析Pandas數(shù)據(jù)結(jié)構(gòu)的簡(jiǎn)便方法措嵌。

我們可以在Jupyter上實(shí)用Dtale躲叼。

需要的第三方庫(kù):

Dtale - 自動(dòng)生成分析報(bào)告

### 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、自動(dòng)桌面提示

這個(gè)腳本會(huì)自動(dòng)觸發(fā)windows桌面通知铅匹,提示重要事項(xiàng)押赊,比如說(shuō):您已工作兩小時(shí),該休息了

我們可以設(shè)定固定時(shí)間提示包斑,比如隔10分鐘流礁、1小時(shí)等

用到的第三方庫(kù):

win10toast - 用于發(fā)送桌面通知的工具

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)     

小結(jié)

Python能實(shí)現(xiàn)的自動(dòng)化功能非常豐富,如果你可以“偷懶”的需求場(chǎng)景不妨試試罗丰。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末神帅,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子萌抵,更是在濱河造成了極大的恐慌找御,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,682評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件绍填,死亡現(xiàn)場(chǎng)離奇詭異霎桅,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)讨永,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,277評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)滔驶,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人卿闹,你說(shuō)我怎么就攤上這事揭糕÷芸欤” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,083評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵著角,是天一觀的道長(zhǎng)揪漩。 經(jīng)常有香客問(wèn)我,道長(zhǎng)吏口,這世上最難降的妖魔是什么奄容? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,763評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮锨侯,結(jié)果婚禮上嫩海,老公的妹妹穿的比我還像新娘。我一直安慰自己囚痴,他們只是感情好叁怪,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,785評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著深滚,像睡著了一般奕谭。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上痴荐,一...
    開(kāi)封第一講書(shū)人閱讀 51,624評(píng)論 1 305
  • 那天血柳,我揣著相機(jī)與錄音,去河邊找鬼生兆。 笑死难捌,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的鸦难。 我是一名探鬼主播根吁,決...
    沈念sama閱讀 40,358評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼合蔽!你這毒婦竟也來(lái)了击敌?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,261評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤拴事,失蹤者是張志新(化名)和其女友劉穎沃斤,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體刃宵,經(jīng)...
    沈念sama閱讀 45,722評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡衡瓶,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了牲证。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片哮针。...
    茶點(diǎn)故事閱讀 40,030評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出诚撵,到底是詐尸還是另有隱情,我是刑警寧澤键闺,帶...
    沈念sama閱讀 35,737評(píng)論 5 346
  • 正文 年R本政府宣布寿烟,位于F島的核電站,受9級(jí)特大地震影響辛燥,放射性物質(zhì)發(fā)生泄漏筛武。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,360評(píng)論 3 330
  • 文/蒙蒙 一挎塌、第九天 我趴在偏房一處隱蔽的房頂上張望徘六。 院中可真熱鬧,春花似錦榴都、人聲如沸待锈。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,941評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)竿音。三九已至,卻和暖如春拴驮,著一層夾襖步出監(jiān)牢的瞬間春瞬,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,057評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工套啤, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留宽气,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,237評(píng)論 3 371
  • 正文 我出身青樓潜沦,卻偏偏與公主長(zhǎng)得像萄涯,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子止潮,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,976評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容