在日常办公中,我们常常会遇到一些重复性的任务,如批量处理文件、发送邮件、生成报表等。这些任务不仅耗时,还容易出错。今天,就让我们一起用 python 编写一个自动化办公小助手,帮助你高效完成这些任务。
一、自动化办公小助手的功能
(一)批量重命名文件
import os
def batch_rename_files(directory, prefix):
"""批量重命名指定目录下的所有文件,添加前缀"""
for filename in os.listdir(directory):
new_name = f"{prefix}_{filename}"
os.rename(os.path.join(directory, filename), os.path.join(directory, new_name))
print("文件重命名完成")
# 示例:批量重命名文件
batch_rename_files('path/to/your/directory', 'new_prefix')
(二)发送邮件
import smtplib
from email.mime.text import mimetext
def send_email(to_email, subject, body):
"""发送邮件"""
sender = "your_email@example.com"
password = "your_password"
msg = mimetext(body)
msg['subject'] = subject
msg['from'] = sender
msg['to'] = to_email
with smtplib.smtp('smtp.example.com', 587) as server:
server.starttls()
server.login(sender, password)
server.sendmail(sender, to_email, msg.as_string())
print("邮件发送成功")
# 示例:发送邮件
send_email('recipient@example.com', 'subject', 'email body')
(三)生成 excel 报表
import pandas as pd
def generate_excel_report(data, output_file):
"""生成 excel 报表"""
df = pd.dataframe(data)
df.to_excel(output_file, index=false)
print("报表生成完成")
# 示例:生成 excel 报表
data = {'name': ['alice', 'bob', 'charlie'], 'age': [25, 30, 35]}
generate_excel_report(data, 'report.xlsx')
(四)批量处理 excel 文件
import pandas as pd
import os
def batch_process_excel_files(directory, output_file):
"""批量处理 excel 文件,合并到一个文件中"""
all_data = []
for filename in os.listdir(directory):
if filename.endswith('.xlsx'):
file_path = os.path.join(directory, filename)
df = pd.read_excel(file_path)
all_data.append(df)
combined_df = pd.concat(all_data, ignore_index=true)
combined_df.to_excel(output_file, index=false)
print("文件处理完成")
# 示例:批量处理 excel 文件
batch_process_excel_files('path/to/your/directory', 'combined_output.xlsx')
(五)定时任务
from apscheduler.schedulers.blocking import blockingscheduler
import datetime
def my_job():
print("任务执行时间:", datetime.datetime.now())
# 示例:设置定时任务
scheduler = blockingscheduler()
scheduler.add_job(my_job, 'interval', seconds=10)
scheduler.start()
二、整合自动化办公小助手
将上述功能整合到一个脚本中,创建一个自动化办公小助手。
import os
import smtplib
from email.mime.text import mimetext
import pandas as pd
from apscheduler.schedulers.blocking import blockingscheduler
import datetime
# 批量重命名文件
def batch_rename_files(directory, prefix):
for filename in os.listdir(directory):
new_name = f"{prefix}_{filename}"
os.rename(os.path.join(directory, filename), os.path.join(directory, new_name))
print("文件重命名完成")
# 发送邮件
def send_email(to_email, subject, body):
sender = "your_email@example.com"
password = "your_password"
msg = mimetext(body)
msg['subject'] = subject
msg['from'] = sender
msg['to'] = to_email
with smtplib.smtp('smtp.example.com', 587) as server:
server.starttls()
server.login(sender, password)
server.sendmail(sender, to_email, msg.as_string())
print("邮件发送成功")
# 生成 excel 报表
def generate_excel_report(data, output_file):
df = pd.dataframe(data)
df.to_excel(output_file, index=false)
print("报表生成完成")
# 批量处理 excel 文件
def batch_process_excel_files(directory, output_file):
all_data = []
for filename in os.listdir(directory):
if filename.endswith('.xlsx'):
file_path = os.path.join(directory, filename)
df = pd.read_excel(file_path)
all_data.append(df)
combined_df = pd.concat(all_data, ignore_index=true)
combined_df.to_excel(output_file, index=false)
print("文件处理完成")
# 定时任务
def my_job():
print("任务执行时间:", datetime.datetime.now())
# 主函数
def main():
# 批量重命名文件
batch_rename_files('path/to/your/directory', 'new_prefix')
# 发送邮件
send_email('recipient@example.com', 'subject', 'email body')
# 生成 excel 报表
data = {'name': ['alice', 'bob', 'charlie'], 'age': [25, 30, 35]}
generate_excel_report(data, 'report.xlsx')
# 批量处理 excel 文件
batch_process_excel_files('path/to/your/directory', 'combined_output.xlsx')
# 设置定时任务
scheduler = blockingscheduler()
scheduler.add_job(my_job, 'interval', seconds=10)
scheduler.start()
if __name__ == "__main__":
main()
三、总结
通过本文的介绍,你已经学会了如何使用 python 编写一个自动化办公小助手,包括批量重命名文件、发送邮件、生成 excel 报表、批量处理 excel 文件和设置定时任务。
到此这篇关于使用python编写一个自动化办公小助手的文章就介绍到这了,更多相关python自动化办公内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论