Python 的一大“超能力”就是自动化——为什么不利用这项能力来简化你的日常工作呢?以下 10 个 Python 脚本,无论是对新手还是有经验的开发者,都能帮助自动化重复性任务,节省时间和精力。更棒的是,你不需要成为专家就可以轻松上手。
1. 图片优化器:谁还有时间用 Photoshop?
曾经需要为网站或社交媒体优化图片,却懒得打开 Photoshop 吗?现在你不必再纠结了!借助强大的 Pillow 模块,这个简单的 Python 脚本可以完成裁剪、调整大小、翻转、旋转、对比度调整、模糊、锐化等多种操作。
from PIL import Image, ImageFilter, ImageOps, ImageEnhance
# 堆代码 duidaima.com
# 加载图片
im = Image.open("Image1.jpg")
# 裁剪图片
im = im.crop((34, 23, 100, 100))
# 调整大小
im = im.resize((50, 50))
# 水平翻转
im = im.transpose(Image.FLIP_LEFT_RIGHT)
# 旋转图片
im = im.rotate(360)
# 压缩图片
im.save("Image1.jpg", optimize=True, quality=90)
# 模糊效果
im = im.filter(ImageFilter.BLUR)
# 锐化效果
im = im.filter(ImageFilter.SHARPEN)
# 调整亮度
enhancer = ImageEnhance.Brightness(im)
im = enhancer.enhance(1.5)
# 调整对比度
enhancer = ImageEnhance.Contrast(im)
im = enhancer.enhance(1.5)
# 添加滤镜
im = ImageOps.grayscale(im)
im = ImageOps.invert(im)
im = ImageOps.posterize(im, 4)
# 保存优化后的图片
im.save("Image1.jpg")
2. 视频优化器:让视频处理更简单
视频编辑不仅仅是 YouTuber 的专属领域。使用 MoviePy,你可以轻松完成视频剪辑、变速、添加音效等操作,而无需依赖复杂的软件工具。
import moviepy.editor as pyedit
# 加载视频
video = pyedit.VideoFileClip("vid.mp4")
# 剪辑视频
vid1 = video.subclip(0, 10)
vid2 = video.subclip(20, 40)
final_vid = pyedit.concatenate_videoclips([vid1, vid2])
# 加速视频
final_vid = final_vid.speedx(2)
# 添加音频
aud = pyedit.AudioFileClip("bg.mp3")
final_vid = final_vid.set_audio(aud)
# 视频反转
final_vid = final_vid.fx(pyedit.vfx.time_mirror)
# 保存最终视频
final_vid.write_videofile("final.mp4")
3. 邮件调度器:再也不会错过重要邮件
如果你曾忘记发送重要邮件,这个脚本就是你的救星。它利用 smtplib 和 schedule,可以让邮件在指定时间自动发送。
import smtplib
import schedule
import time
def send_email():
sender_email = "your_email@gmail.com"
receiver_email = "recipient_email@gmail.com"
password = "your_email_password"
subject = "Automated Email"
body = "This is an automated email sent using Python."
message = f"Subject: {subject}\n\n{body}"
with smtplib.SMTP_SSL("smtp.gmail.com", 465) as server:
server.login(sender_email, password)
server.sendmail(sender_email, receiver_email, message)
# 堆代码 duidaima.com
# 每天早上8点发送邮件
schedule.every().day.at("08:00").do(send_email)
while True:
schedule.run_pending()
time.sleep(1)
4. 社交媒体自动发布:像专家一样运营账号
这个脚本利用 Tweepy,可以自动将内容发布到 Twitter,并支持设置发布间隔,帮你轻松管理多个社交媒体平台。
import tweepy
import schedule
import time
def post_to_twitter():
api_key = "YOUR_API_KEY"
api_secret = "YOUR_API_SECRET"
access_token = "YOUR_ACCESS_TOKEN"
access_token_secret = "YOUR_ACCESS_TOKEN_SECRET"
auth = tweepy.OAuthHandler(api_key, api_secret)
auth.set_access_token(access_token, access_token_secret)
api = tweepy.API(auth)
tweet = "This is an automated tweet using Python!"
api.update_status(tweet)
# 每6小时发布一次推文
schedule.every(6).hours.do(post_to_twitter)
while True:
schedule.run_pending()
time.sleep(1)
5. PDF 转图片:从 PDF 提取高质量图片
使用 PyMuPDF,你可以轻松将 PDF 页面转换为高质量图片。无论是扫描文档还是为演示文稿提取图片,这个脚本都非常实用。
import fitz
def pdf_to_images(pdf_file):
doc = fitz.open(pdf_file)
for page in doc:
pix = page.get_pixmap()
output = f"page{page.number}.png"
pix.writePNG(output)
pdf_to_images("test.pdf")
6. 获取 API 数据:简化数据抓取流程
手动拉取数据太麻烦?使用 urllib3,这个脚本可以自动从 API 获取数据,比如天气、股票价格或 GitHub 仓库列表。
import urllib3
# 获取 API 数据
url = "https://api.github.com/users/psf/repos"
http = urllib3.PoolManager()
response = http.request('GET', url)
print("状态码:", response.status)
print("数据:", response.data)
7. 电池电量提示器:避免电量不足带来的尴尬
利用 plyer 和 psutil,这个脚本监控笔记本的电池电量,并在电量不足时发送通知。
from plyer import notification
import psutil
from time import sleep
while True:
battery = psutil.sensors_battery()
life = battery.percent
if life < 50:
notification.notify(
title="电量不足",
message="请连接电源",
timeout=10
)
sleep(50)
8. 网页数据抓取:高效提取网页内容
利用 requests 和 BeautifulSoup,这个脚本可以快速抓取网页数据,帮助你节省大量浏览时间。
import requests
from bs4 import BeautifulSoup
url = "https://example.com"
response = requests.get(url)
soup = BeautifulSoup(response.text, "html.parser")
data = soup.find("div", {"class": "content"}).get_text()
print(data)
9. 自动化测试:让你的代码远离 Bug
使用 Pytest,快速编写和运行测试用例,确保代码按预期工作。
import pytest
def add_numbers(x, y):
return x + y
def test_addition():
assert add_numbers(1, 2) == 3
assert add_numbers(-1, 1) == 0
assert add_numbers(0, 0) == 0
if __name__ == "__main__":
pytest.main()
10. 文件备份与同步:轻松保障数据安全
这个脚本能自动同步两个文件夹中的内容,是备份和多设备协作的理想工具。
import os
import shutil
def backup_and_sync(source_folder, backup_folder):
for root, _, files in os.walk(source_folder):
for file in files:
source_path = os.path.join(root, file)
backup_path = os.path.join(backup_folder, root.replace(source_folder, ""), file)
os.makedirs(os.path.dirname(backup_path), exist_ok=True)
shutil.copy2(source_path, backup_path)
for root, _, files in os.walk(backup_folder):
for file in files:
backup_path = os.path.join(root, file)
source_path = os.path.join(source_folder, root.replace(backup_folder, ""), file)
if not os.path.exists(source_path):
os.remove(backup_path)
backup_and_sync("path/to/source/folder", "path/to/backup/folder")
用 Python 解放你的双手,这些脚本展示了 Python 在自动化日常任务中的强大能力。无论是提升效率还是简化繁琐工作,Python 都可以成为你的好帮手。试着实现这些脚本,让你的工作流程更智能、更轻松!