page contents

Python 自动化实战:9 个拿来即用的日常任务脚本

每天被重复性工作占用大量时间?其实,很多任务都可以用 Python 脚本自动完成。本文整理了 9 个最实用的 Python 自动化场景,每个都附带可直接复制运行的代码,帮你从繁琐操作中解放出来。

attachments-2026-08-MBw6Eoy46a7a7f9851af4.png每天被重复性工作占用大量时间?其实,很多任务都可以用 Python 脚本自动完成。本文整理了 9 个最实用的 Python 自动化场景,每个都附带可直接复制运行的代码,帮你从繁琐操作中解放出来。

 

写在前面

Python 最大的优势之一,就是能用极少的代码完成大量重复性工作。无论是整理文件、发送邮件、监控网站,还是处理图片视频,几乎都有现成的库可以调用。

下面这 9 个脚本,都是从真实工作场景中提炼出来的。你可以直接复制代码,根据自己的需求稍作修改就能跑起来。

 

1. 自动发送邮件

场景:每天需要发送固定格式的邮件,比如日报、通知、提醒。

import smtplib
from email.mime.text import MIMEText
import os

subject = "自动邮件"
body = "这是一封用 Python 发送的自动邮件"
to_email = "recipient@example.com"
from_email = "sender@example.com"
# 密码从环境变量读取,不要硬编码
password = os.environ.get("EMAIL_PASSWORD")

msg = MIMEText(body)
msg["Subject"] = subject
msg["From"] = from_email
msg["To"] = to_email

try:
    server = smtplib.SMTP_SSL("smtp.example.com", 465)
    server.login(from_email, password)
    server.sendmail(from_email, to_email, msg.as_string())
    print("邮件发送成功")
except Exception as e:
    print(f"发送失败:{e}")
finally:
    server.quit()

注意点:

密码一定要放在环境变量或 .env 文件中,不要写死在代码里。

建议用 SMTP_SSL 或 starttls,避免明文传输。

加上异常处理,发送失败时不会直接崩溃。

 

2. 自动整理文件

场景:下载目录堆积如山,想按文件类型自动分类。

import os
import shutil
from pathlib import Path

src_dir = Path("/path/to/source/directory")
dst_dir = Path("/path/to/destination/directory")

for file in src_dir.iterdir():
    if file.is_file() and not file.name.startswith("."):
        ext = file.suffix.lower() or "其他"
        target_folder = dst_dir / ext
        target_folder.mkdir(parents=True, exist_ok=True)
        shutil.move(str(file), str(target_folder / file.name))

注意点:

用 pathlib 比 os.path 更 Pythonic。

过滤掉隐藏文件(以 . 开头),避免误移动系统文件。

如果是备份而不是移动,把 shutil.move 换成 shutil.copy2。

 

3. 自动发社交媒体推文

场景:运营账号需要定时发布内容。

import tweepy

client = tweepy.Client(
    bearer_token="your_bearer_token",
    consumer_key="your_api_key",
    consumer_secret="your_api_secret",
    access_token="your_access_token",
    access_token_secret="your_access_token_secret"
)

response = client.create_tweet(text="这是一条用 Python 发送的自动推文")
print(f"推文已发布:{response.data['id']}")

注意点:

Twitter 现在使用 API v2,旧版 v1.1 的代码需要更新。

推荐用 tweepy 库,OAuth 流程已经封装好了。

注意 API 调用频率限制,避免账号被封。

 

4. 自动填写电子表格

场景:每天把数据写入 Google Sheets 或 Excel 表格。

import gspread
from google.oauth2.service_account import Credentials

scopes = ["https://www.googleapis.com/auth/spreadsheets"]
creds = Credentials.from_service_account_file("credentials.json", scopes=scopes)
client = gspread.authorize(creds)

sheet = client.open_by_key("your_spreadsheet_id").sheet1
sheet.update("A1:B2", [[1, 2], [3, 4]])

注意点:

需要先完成 Google API 认证,下载 credentials.json。

gspread 比原生的 googleapiclient 更简洁,代码量少很多。

对于 Excel 文件,可以用 openpyxl 库,不需要联网。

 

5. 自动监控网站可用性

场景:想第一时间知道某个网站是不是宕机了。

import requests
import time

url = "https://www.example.com"

try:
    response = requests.get(url, timeout=5)
    if 200 <= response.status_code < 300:
        print(f"✅ {url} 正常访问")
    else:
        print(f"⚠️ {url} 返回状态码:{response.status_code}")
except requests.RequestException as e:
    print(f"❌ {url} 访问失败:{e}")

注意点:

设置 timeout,避免某个网站卡住导致脚本 hanging。

状态码判断用 2xx 范围,不要只判断 200。

配合 schedule 库和消息推送,就能做成一个简易监控告警系统。

 

6. 自动备份文件夹

场景:定期把重要文件夹打包备份。

import shutil
from datetime import datetime
from pathlib import Path

src_dir = Path("/path/to/source/directory")
backup_dir = Path("/path/to/backup/directory")
backup_dir.mkdir(parents=True, exist_ok=True)

timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
backup_path = backup_dir / f"backup_{timestamp}"

shutil.make_archive(str(backup_path), "zip", str(src_dir))
print(f"备份完成:{backup_path}.zip")

注意点:

shutil.make_archive 可以生成 zip、tar、gztar 等格式。

加时间戳可以保留多个历史版本。

重要数据建议用更专业的备份工具,比如 rdiff-backup 或云同步服务。

 

7. 自动生成数据报表

场景:每天从数据生成 CSV 或 Excel 报表。

import pandas as pd
from datetime import datetime

sales_data = {
    "Date": ["2025-07-01", "2025-07-02", "2025-07-03"],
    "Sales": [100, 200, 300]
}

df = pd.DataFrame(sales_data)
df["Date"] = pd.to_datetime(df["Date"])
report_name = f"sales_report_{datetime.now().strftime('%Y%m%d')}.csv"
df.to_csv(report_name, index=False)
print(f"报表已生成:{report_name}")

注意点:

用 pd.to_datetime 把日期列转成正确格式,方便后续分析。

报表文件名加上日期,避免覆盖历史文件。

可以进一步用 df.to_excel 生成 Excel 文件,并添加样式。

 

8. 自动批量处理图片

场景:需要把一批图片统一调整尺寸或转换格式。

from PIL import Image
from pathlib import Path

input_dir = Path("./images")
output_dir = Path("./resized")
output_dir.mkdir(exist_ok=True)

for image_file in input_dir.glob("*.jpg"):
    with Image.open(image_file) as img:
        img.thumbnail((800, 800))
        output_path = output_dir / f"{image_file.stem}_resized.jpg"
        img.save(output_path, quality=85)
        print(f"已处理:{output_path}")

注意点:

thumbnail 会保持宽高比,resize 不会,按需求选择。

批量处理时建议用 glob 遍历文件夹。

保存 JPEG 时可以设置 quality 参数控制文件大小。

 

9. 自动剪辑视频

场景:从长视频中截取精彩片段。

from moviepy.editor import VideoFileClip

clip = VideoFileClip("input_video.mp4")
trimmed_clip = clip.subclip(5, 30)  # 截取第 5 秒到第 30 秒
trimmed_clip.write_videofile("output_video.mp4")

注意点:

moviepy 适合入门和中小规模处理,API 非常直观。

处理大文件或批量剪辑时,直接用 FFmpeg 会更快,可以配合 subprocess 调用。

更多相关技术内容咨询欢迎前往并持续关注好学星城论坛了解详情。

想高效系统的学习Python编程语言,推荐大家关注一个微信公众号:Python编程学习圈。每天分享行业资讯、技术干货供大家阅读,关注即可免费领取整套Python入门到进阶的学习资料以及教程,感兴趣的小伙伴赶紧行动起来吧。

attachments-2022-05-rLS4AIF8628ee5f3b7e12.jpg

 

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
Pack
Pack

2307 篇文章

作家榜 »

  1. 轩辕小不懂 2403 文章
  2. Pack 2307 文章
  3. 小柒 2228 文章
  4. Nen 576 文章
  5. 王昭君 209 文章
  6. 文双 71 文章
  7. 小威 64 文章
  8. Cara 36 文章