Python自动化脚本实战:从入门到精通的5个实用案例
Python作为当下最流行的编程语言之一,其简洁的语法和丰富的库使其成为自动化任务的理想选择。本文将分享5个实用的Python自动化脚本案例,帮助您提升工作效率,告别重复劳动。
1. 文件批量重命名工具

工作中经常需要处理大量文件的重命名工作,手动操作既耗时又容易出错。使用Python可以轻松实现文件批量重命名。
import os
def batch_rename(folder_path, prefix):
for count, filename in enumerate(os.listdir(folder_path)):
file_ext = os.path.splitext(filename)[1]
new_name = f"{prefix}_{str(count+1).zfill(3)}{file_ext}"
os.rename(
os.path.join(folder_path, filename),
os.path.join(folder_path, new_name)
)
print(f"已完成{count+1}个文件的重命名")
# 使用示例
batch_rename("/path/to/your/files", "vacation_photo")
这个脚本会为指定文件夹中的所有文件添加统一前缀和序号,保持原始文件扩展名不变。zfill(3)确保序号始终是三位数(001,002...)。
2. 自动发送电子邮件
定期发送相同格式的邮件是许多职场人士的日常任务。Python可以帮您自动化这一过程。
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
def send_email(sender, receiver, subject, body, password):
message = MIMEMultipart()
message["From"] = sender
message["To"] = receiver
message["Subject"] = subject
message.attach(MIMEText(body, "plain"))
with smtplib.SMTP_SSL("smtp.gmail.com", 465) as server:
server.login(sender, password)
server.sendmail(sender, receiver, message.as_string())
print("邮件发送成功")
# 使用示例
send_email(
"your_email@gmail.com",
"recipient@example.com",
"月度销售报告",
"附件是本月销售数据汇总,请查收。",
"your_app_password"
)
注意:Gmail需要使用应用专用密码而非常规密码。此脚本支持SSL加密连接,确保通信安全。
3. 网页数据抓取与分析
从网页获取数据并进行分析是常见的数据处理需求,Python的requests和BeautifulSoup库使这一过程变得简单。
import requests
from bs4 import BeautifulSoup
import pandas as pd
def scrape_website(url, output_file):
response = requests.get(url)
soup = BeautifulSoup(response.text, "html.parser")
# 假设我们要抓取产品名称和价格
products = []
for item in soup.select(".product-item"):
name = item.select_one(".product-name").text.strip()
price = item.select_one(".price").text.strip()
products.append({"名称": name, "价格": price})
df = pd.DataFrame(products)
df.to_csv(output_file, index=False)
print(f"数据已保存至{output_file}")
# 使用示例
scrape_website("https://example.com/products", "products_data.csv")
此脚本将网页中的产品信息提取并保存为CSV文件,便于后续分析。实际使用时需要根据目标网站结构调整CSS选择器。
4. 自动化Excel报表处理
Excel是办公场景中最常用的工具之一,Python可以自动化处理Excel文件,节省大量时间。
import openpyxl
from openpyxl.styles import Font, Alignment
def process_excel(input_file, output_file):
wb = openpyxl.load_workbook(input_file)
sheet = wb.active
# 设置标题格式
for cell in sheet[1]:
cell.font = Font(bold=True)
cell.alignment = Alignment(horizontal="center")
# 计算每列总和并添加到最后一行
for col in range(2, sheet.max_column + 1):
total = sum(cell.value for cell in sheet.iter_rows(
min_row=2, max_row=sheet.max_row, min_col=col, max_col=col,
values_only=True) if isinstance(cell, (int, float)))
sheet.cell(row=sheet.max_row + 1, column=col, value=total)
wb.save(output_file)
print(f"报表处理完成,已保存为{output_file}")
# 使用示例
process_excel("raw_data.xlsx", "processed_report.xlsx")
这个脚本会自动为Excel表格添加格式并计算列总和,适用于财务、销售等需要定期汇总数据的场景。
5. 社交媒体自动发布工具
管理多个社交媒体账号时,手动发布内容效率低下。Python可以帮助您实现内容自动发布。
import tweepy
import schedule
import time
def post_to_twitter(api_key, api_secret, access_token, access_secret, message):
auth = tweepy.OAuthHandler(api_key, api_secret)
auth.set_access_token(access_token, access_secret)
api = tweepy.API(auth)
try:
api.update_status(message)
print("推文发布成功")
except Exception as e:
print(f"发布失败: {e}")
def scheduled_posting():
# 设置定时任务
schedule.every().day.at("09:00").do(
post_to_twitter,
"your_api_key",
"your_api_secret",
"your_access_token",
"your_access_secret",
"早安!今天又是充满希望的一天!#正能量"
)
while True:
schedule.run_pending()
time.sleep(60)
# 启动定时发布
scheduled_posting()
此示例展示了如何定时发布Twitter内容,同样的原理也适用于其他社交媒体平台。schedule库让定时任务设置变得非常简单。
进阶技巧与最佳实践
掌握了基础自动化脚本后,以下技巧可以帮助您编写更健壮、高效的代码:
- 错误处理:为脚本添加try-except块,优雅处理可能出现的异常
- 日志记录:使用logging模块记录脚本运行情况,便于排查问题
- 配置文件:将敏感信息和可配置参数放在单独配置文件中
- 进度显示:为耗时操作添加进度条(tqdm库是不错的选择)
- 代码复用:将常用功能封装为函数或类,建立自己的工具库
Python自动化脚本的学习曲线平缓,但应用场景极为广泛。从简单的文件操作到复杂的业务流程自动化,Python都能胜任。建议从解决实际工作中的小问题开始,逐步积累经验,您会发现工作效率得到显著提升。
记住,最好的学习方式是实践。选择一个您日常工作中重复性最高的任务,尝试用Python将其自动化,您将立即感受到编程带来的效率革命。
还没有评论,来说两句吧...