還在做重複的勞動,不如用Python自動生成Excel以郵件發送
數據分析師小王每天都要被各種各樣的數據數據報表搞得焦頭爛額,比如老闆的,運營的、產品的等等。而且大部分報表都是重複性的工作。這篇文章就是幫助大家如何用Python來實現報表的自動發送,解放你的勞動力,可以讓你有時間去做更有意思的事情。
要點:
·pymysql一個可以連接MySQL實例並且實現增刪改查功能的庫
·datetimePython標準庫中自帶的關於時間的庫
·openpyxl一個可以讀寫07版以後的Excel文檔的庫
·smtplibSMTP即簡單郵件傳輸協議
·email一個用來處理郵件消息的庫
01.
準備工作,導入相應的庫
數據分析師日常大部分工作需要熟練掌握SQL和excel打交道,而且很多數據都帶日期。所以我們需要導入下面這些模塊:
pymysql,openxl,datatime,當然還有自動發郵件的email和smtplib模塊。
(代碼可以左右滑動)
02.
連接SQL
現在主流的資料庫有兩大類,SQL和NoSQL,雖然Mongodb非常靈活和簡單,但是大部分公司的資料庫還是用Mysql比較多的!所以我們需要掌握一些基本的python操作資料庫的知識!
1).執行一條sql,獲取數據
(代碼可以左右滑動)
2).執行sql,獲取欄位數據
(代碼可以左右滑動)
03.
數據寫入Excel
用Python操作excel其實非常簡單,前面我們的入門教程里有詳細的講解(關於Excel表格如何處理|這篇最用心)。用openpyxl建一個excel對象,然後建一個sheet,接著一個循環把一個一個單元格寫數據即可!
(代碼可以左右滑動)
04.
處理日期數據
大部分的數據都是需要時間戳的,用Python操作時間可以用time,datatime這樣的模塊。裡面有大量非常方便的函數。詳見我的歷史文章(都說Python時間處理很好玩還簡單,真的嗎)
05.
生成郵件
經過前面的幾個步驟,我們的準備工作差不多了!該重頭戲自動發送郵件出場了,編寫一個發送郵件,無非這麼幾步:
1).編寫郵件內容
(代碼可以左右滑動)
用email模塊生成郵件的標題,內容,發件人和收件人。如果有附件的話,我們插入附件的文件。
2).發送郵件
準備好郵件的內容之後,我們用smtp模塊鏈接上伺服器,填入用戶名和密碼。當然一定要有異常處理,所以涉及到伺服器的處理,都需要有異常處理!
(代碼可以左右滑動)
06.大功告成,看一下效果
忙活了半天,總於可以看一下運行的效果了!輸入一條sql查詢語句,然後初始化一些郵件的標題,然後填入一堆運營部門,產品部門的郵件地址。然後倒杯咖啡,漂亮的按一下回車,欣賞自己的勞動成果!
(代碼可以左右滑動)
看一下效果:
用Python寫自動化的小腳本小工具其實非常方便,快捷!比如今天的自動發郵件腳本,還有前面的量化交易提醒工具(熬了一晚上,小白用Python寫了一個股票提醒系統),都是通過郵件來發送的,對菜鳥來說可以練習,增強功力!
說千遍道萬遍,不如自己敲一遍,你覺得呢,歡迎留言討論
※Python這麼強大,怎樣快速學習?
※想做Python開發,這14種常用Python模塊,你必須知道!
TAG:Python |