<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          5個方便好用的Python自動化腳本

          共 4876字,需瀏覽 10分鐘

           ·

          2022-02-12 08:20

          導讀:這次我們使用Python來實現(xiàn)幾個自動化場景,或許可以用到你的工作中。


          作者:朱衛(wèi)軍

          來源:Python大數(shù)據(jù)分析(ID:pydatas)





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


          編程世界里有各種各樣的自動化腳本,來完成不同的任務(wù)。


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



          01 自動化閱讀網(wǎng)頁新聞


          這個腳本能夠?qū)崿F(xiàn)從網(wǎng)頁中抓取文本,然后自動化語音朗讀,當你想聽新聞的時候,這是個不錯的選擇。


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


          需要的第三方庫:


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

          • requests - 好用到逆天的HTTP工具,用來向網(wǎng)頁發(fā)送請求獲取數(shù)據(jù)

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


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



          02 自動生成素描草圖


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


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


          需要的第三方庫:


          • Opencv - 計算機視覺工具,可以實現(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)




          03 自動發(fā)送多封郵件


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


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


          需要的第三方庫:


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

          • Smtlib - 向SMTP服務(wù)器發(fā)送電子郵件,它定義了一個 SMTP 客戶端會話對象,該對象可將郵件發(fā)送到互聯(lián)網(wǎng)上任何帶有 SMTP 或 ESMTP 監(jiān)聽程序的計算機

          • 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("[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)



          04 自動化數(shù)據(jù)探索


          數(shù)據(jù)探索是數(shù)據(jù)科學項目的第一步,你需要了解數(shù)據(jù)的基本信息才能進一步分析更深的價值。


          一般我們會用pandas、matplotlib等工具來探索數(shù)據(jù),但需要自己編寫大量代碼,如果想提高效率,Dtale是個不錯的選擇。


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


          我們可以在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)




          05 自動桌面提示


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


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


          用到的第三方庫:


          • 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能實現(xiàn)的自動化功能非常豐富,如果你可以“偷懶”的需求場景不妨試試。


          參考:

          https://medium.com/pythoneers/10-handy-automation-scripts-you-should-try-using-python-fc9450116938?



          延伸閱讀??


          延伸閱讀《利用Python進行數(shù)據(jù)分析


          干貨直達??



          更多精彩??

          在公眾號對話框輸入以下關(guān)鍵詞
          查看更多優(yōu)質(zhì)內(nèi)容!

          讀書?|?書單?|?干貨?|?講明白?|?神操作?|?手把手
          大數(shù)據(jù)?|?云計算?|?數(shù)據(jù)庫?|?Python?|?爬蟲?|?可視化
          AI?|?人工智能?|?機器學習?|?深度學習?|?NLP
          5G?|?中臺?|?用戶畫像?|?數(shù)學?|?算法?|?數(shù)字孿生

          據(jù)統(tǒng)計,99%的大咖都關(guān)注了這個公眾號
          ??
          瀏覽 17
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  天天爽视频 | 黄色在线免费观看 | 天天干天天摸 | 亚洲精选青青草日韩 | 亚洲天堂乱伦 |