在职场中,常见的重复性任务包括:
传统方式不仅浪费时间,还容易出错。Python 提供了强大支持,可以帮我们快速构建自动化工具。
安装以下常用模块:
bash复制编辑pip install openpyxl pandas xlrd pywin32
可选模块:
bash复制编辑pip install yagmail pillow docx
📁 目录结构示意:
复制编辑📂打卡数据
├── 1月.xlsx
├── 2月.xlsx
├── ...
python复制编辑import pandas as pd
import os
folder = './打卡数据'
all_files = [f for f in os.listdir(folder) if f.endswith('.xlsx')]
df_list = []
for file in all_files:
path = os.path.join(folder, file)
df = pd.read_excel(path)
df['月份'] = file.replace('.xlsx', '')
df_list.append(df)
merged_df = pd.concat(df_list)
merged_df.to_excel("打卡合并总表.xlsx", index=False)
python复制编辑summary = merged_df.groupby('部门')['打卡天数'].sum().reset_index()
summary.to_excel("部门打卡汇总.xlsx", index=False)
目标:自动发送个性化邮件(含附件、称呼)
yagmail
发送邮件python复制编辑import yagmail
yag = yagmail.SMTP(user="your_email@qq.com", password="授权码")
yag.send(
to="user@example.com",
subject="月度打卡通知",
contents="您好,本月打卡报告请查收!",
attachments="打卡合并总表.xlsx"
)
✅ 支持多个收件人,支持附件、HTML、图片嵌入等。
python复制编辑contacts = pd.read_excel("收件人表.xlsx")
for _, row in contacts.iterrows():
name = row['姓名']
email = row['邮箱']
content = f"{name},您好,本月打卡数据已发送,请查收!"
yag.send(
to=email,
subject="【公司通知】月度打卡报告",
contents=content,
attachments="打卡合并总表.xlsx"
)
场景:自动生成员工证明、发票等文档
python-docx
python复制编辑from docx import Document
doc = Document()
doc.add_heading("员工工作证明", 0)
doc.add_paragraph("兹证明 XXX 为我司正式员工,表现良好。")
doc.save("证明文档.docx")
python复制编辑template = Document("证明模板.docx")
contacts = pd.read_excel("员工名单.xlsx")
for _, row in contacts.iterrows():
name = row['姓名']
new_doc = Document("证明模板.docx")
for p in new_doc.paragraphs:
if '【姓名】' in p.text:
p.text = p.text.replace("【姓名】", name)
new_doc.save(f"{name}_工作证明.docx")
适用:产品图处理、签名图导入、Logo 统一命名等
python复制编辑from PIL import Image
import os
src_folder = './images'
dst_folder = './processed'
os.makedirs(dst_folder, exist_ok=True)
for i, filename in enumerate(os.listdir(src_folder)):
if filename.endswith(".jpg"):
img = Image.open(os.path.join(src_folder, filename))
img = img.resize((600, 400))
new_name = f"img_{i+1}.jpg"
img.save(os.path.join(dst_folder, new_name), quality=85)
📌 效果图示意:
案例:根据文件类型分类归档文件
python复制编辑import shutil
folder = './资料包'
for file in os.listdir(folder):
full_path = os.path.join(folder, file)
if file.endswith('.pdf'):
shutil.move(full_path, './PDF文件/' + file)
elif file.endswith('.docx'):
shutil.move(full_path, './Word文件/' + file)
你还可以结合 schedule
实现定时扫描整理。
使用 tkinter
构建界面操作入口:
python复制编辑import tkinter as tk
from tkinter import filedialog
def choose_file():
file = filedialog.askopenfilename()
print("选择的文件:", file)
win = tk.Tk()
win.title("自动办公工具")
tk.Button(win, text="选择文件", command=choose_file).pack(padx=20, pady=20)
win.mainloop()
界面图效果如下:
📷
python 脚本路径.py
cron
bash复制编辑crontab -e
添加如下行表示每天早上 9 点执行脚本:
ruby复制编辑0 9 * * * /usr/bin/python3 /home/user/job.py
项目名称 | 核心功能 |
---|---|
考勤分析系统 | 多表合并、部门汇总、可视化 |
薪资条自动生成 | 批量 Word/PDF 生成+发邮件 |
批量简历处理 | 提取关键信息、生成表格 |
文件搬运工 | 根据规则自动归档分类 |
自动日报系统 | 生成日报并定时发邮件 |
模块名 | 用途 |
---|---|
pyautogui | 鼠标键盘自动化 |
selenium | 浏览器自动操作 |
docxtpl | Word 模板替换 |
pdfplumber | PDF 内容提取 |
pyecharts | 图表仪表盘生成 |
win32com | 操作 Office 宏、打开 Excel |
自动化办公的精髓在于:让代码做重复的事,让人类做创造的事。
通过本篇你已经学会了:
未来可扩展为完整的办公系统,甚至与企业 OA、钉钉、飞书对接,实现企业级自动化。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。