這是一個很好的 Python 自動化的案例。對於小公司,採用手動方式一個個發送郵件仍是能夠的。若是一個上百號,上千號,或者更大規模的公司,咱們再一個個發送工資條郵件,就太浪費時間了。鑑於此,我寫了一個這樣的程序,實現 Python 自動化羣發工資條的功能。php
原始數據源以下:html
最終效果以下:前端
看到這裏,你確定也以爲很好玩兒吧?那麼這樣一個自動化程序,應該怎麼作呢?接着往下看。算法
其實這樣一個代碼,總結下來,就只有以下5步:
① 導入相關模塊;
② 讀取 Excel 表格;
③ 登陸郵箱;
④ 準備要發送的郵件正文;
⑤ 發送郵件;瀏覽器
from openpyxl import load_workbook # 用於操做Excel的模塊 import yagmail # 用於存儲郵箱地址和密碼的模塊 import keyring # 用於記錄你郵箱地址和密碼的模塊 from datetime import * # 用於獲取當前系統時間的模塊
# 加載Excel文件 wb = load_workbook("羣發工資條.xlsx",data_only=True) sheet = wb.active print(sheet) ------------------------------------------------------- for row in sheet: row_text = "" for cell in row: if cell.column == "B": continue row_text += f"{cell.value}," print(row_text) ------------------------------------------------------ print("年:", date.today().year) print("月:", date.today().month) print(f"{date.today().year}-{date.today().month}月") 結果以下:
yagmail.register("1127421544@qq.com","flmyucvntuvbjbcb") pwd = keyring.get_password("yagmail","1127421544@qq.com") yag = yagmail.SMTP(user="1127421544@qq.com",host="smtp.qq.com",password=pwd)
須要注意的是:第一行代碼是用於存儲你的郵件地址和密碼。第二行代碼使用 keyring 是爲了記錄你的郵件地址和密碼。第三行代碼直接登陸郵箱。安全
關於 Python 怎麼發送郵件,我以前寫了一篇文章,進行了詳細的介紹,下方是這篇文章的連接,你們能夠參考。
機器學習
Python 發郵件:http://suo.im/60ylZ1ide
4)準備要發送的正文學習
因爲發送的正文裏面,須要咱們發送一個帶表格的郵件,這就有必要咱們瞭解一點前端知識。所以,我在最後面花一個章節爲你們講解。大數據
yag.send(f"{email}",f"數據分析與統計學之美有限公司{date.today().year}-{date.today().month}月工資狀況",contents)
上述代碼共有3個參數:第一個參數是收件人的郵箱;第二個參數是郵件的標題;第三個參數是發送的內容。
會用 Python 發送郵件的人都知道,郵件正文內容能夠寫 html 代碼。你可能以爲本身啥也不會,可是不用擔憂,咱們不須要學習過高深的前端代碼,作過爬蟲的人耳濡目染,都可以看懂一些。
咱們能夠直接用 Pycharm 建立一個新的 html 文件,裏面會顯示初始的前端代碼,咱們進行簡單的添加,就能夠得到一個表格啦!
最終在瀏覽器中顯示效果以下:
從上圖中根本看不出這是一個表格,那是由於咱們沒有爲它設置一個樣式,下面要作的就是爲表格設置樣式。
最終在瀏覽器中顯示效果以下:
從上圖能夠看出,整個前端代碼就是用一些列的標籤組成,同時標籤都是成對出現的。所以,在 Python 中寫前端代碼時,只須要在對應位置添加對應的標籤便可。
for row in sheet: row_text = "<tr>" for cell in row: if cell.column == "B": continue row_text += f"<td>{cell.value}</td>" row_text += "</tr>" print("\n") print(row_text)
結果以下:
爲了文章的完整性,我在文章最後放上個人代碼。可是限於文章篇幅,最後我只粘貼一張圖片。
更多精彩推薦 ☞征戰雲時代,爲何安全是關鍵命題? ☞華爲麒麟成「絕唱」,造芯太難了! ☞16歲開寶馬,19歲創立本身的電腦公司,戴爾傳奇 ☞算法實現太難了?機器學習也須要開源軟件 ☞數據平臺、大數據平臺、數據中臺……傻傻分不清?此次終於有人講明白了! ☞當心!你可能玩了假的DeFi 點分享點點贊點在看