
你有没有遇到过这种情况?
每天重复着同样的操作:重命名文件、整理文件夹、合并Excel表格……
这些枯燥的工作占用了你大量时间,让你无法专注于更有价值的事情。
说实话,我之前也是这样。
直到我发现了一个方法——用Python自动化脚本。
简单来说就是:
让电脑帮你干活,而不是你帮电脑干活。
还在手动一个一个改文件名?
这个脚本可以自动为目录下所有文件添加前缀或替换关键词:
import os
def batch_rename(path, old_str, new_str):
for file in os.listdir(path):
if old_str in file:
new_name = file.replace(old_str, new_str)
os.rename(os.path.join(path, file), os.path.join(path, new_name))适用场景:整理下载文件夹、标准化命名。
下载文件夹乱成一团?
让这个脚本自动把图片、文档分类到不同文件夹:
import os, shutil
downloads_folder = "/path/to/downloads"
extensions = {"图片": [".jpg", ".png"], "文档": [".pdf", ".docx"]}
for file in os.listdir(downloads_folder):
for folder, exts in extensions.items():
if any(file.endswith(ext) for ext in exts):
dest_folder = os.path.join(downloads_folder, folder)
os.makedirs(dest_folder, exist_ok=True)
shutil.move(os.path.join(downloads_folder, file), dest_folder)适用场景:清理杂乱下载目录。
数据无价,备份刻不容缓。
这个脚本会自动创建带时间戳的备份:
import shutil, datetime
def backup_folder(source, dest):
timestamp = datetime.datetime.now().strftime('%Y%m%d_%H%M%S')
backup_path = os.path.join(dest, f"backup_{timestamp}")
shutil.copytree(source, backup_path)适用场景:关键数据定期备份。
需要把一堆图片从JPG转成PNG?
这个脚本一键搞定:
from PIL import Image
import os
def batch_convert_images(input_folder, output_folder, target_format='PNG'):
os.makedirs(output_folder, exist_ok=True)
for file in os.listdir(input_folder):
if file.lower().endswith(('.jpg', '.jpeg', '.png', '.bmp', '.gif')):
try:
img = Image.open(os.path.join(input_folder, file))
output_name = os.path.splitext(file)[0] + f'.{target_format.lower()}'
img.save(os.path.join(output_folder, output_name), target_format)
except Exception as e:
print(f"转换失败: {file}, 错误: {e}")适用场景:网站图片格式统一、素材格式转换。
磁盘空间不够用了?
找出那些重复的文件清理掉:
import os
import hashlib
def find_duplicate_files(directory):
file_hashes = {}
duplicates = []
for root, _, files in os.walk(directory):
for file in files:
file_path = os.path.join(root, file)
file_hash = get_file_hash(file_path)
if file_hash in file_hashes:
duplicates.append((file_path, file_hashes[file_hash]))
else:
file_hashes[file_hash] = file_path
return duplicates
def get_file_hash(file_path):
hash_md5 = hashlib.md5()
with open(file_path, "rb") as f:
for chunk in iter(lambda: f.read(4096), b""):
hash_md5.update(chunk)
return hash_md5.hexdigest()适用场景:磁盘空间清理、文件去重。
手头有几十个Excel文件要合并?
这个脚本帮你一键搞定:
import pandas as pd
def merge_excel(folder_path, output_file):
all_data = pd.DataFrame()
for file in os.listdir(folder_path):
if file.endswith('.xlsx'):
df = pd.read_excel(os.path.join(folder_path, file))
all_data = pd.concat([all_data, df])
all_data.to_excel(output_file, index=False)适用场景:财务报告整合、销售数据汇总。
需要把多个PDF合成一个?
这个脚本轻松实现:
from PyPDF2 import PdfMerger
def merge_pdfs(pdf_list, output_file):
merger = PdfMerger()
for pdf in pdf_list:
merger.append(pdf)
merger.write(output_file)适用场景:合同整合、会议资料整理。
想把PDF里的文字提取出来编辑?
用这个脚本:
import PyPDF2
def extract_text(pdf_path):
with open(pdf_path, 'rb') as file:
reader = PyPDF2.PdfReader(file)
return "\n".join(page.extract_text() for page in reader.pages)适用场景:合同内容分析、报告数据复用。
需要把CSV转成Excel?
一行代码搞定:
import pandas as pd
def csv_to_excel(csv_path, excel_path):
df = pd.read_csv(csv_path)
df.to_excel(excel_path, index=False)适用场景:数据迁移、报表格式标准化。
数据看不懂?
自动生成图表让你一目了然:
import pandas as pd
import matplotlib.pyplot as plt
def generate_charts(data_file, output_folder):
df = pd.read_excel(data_file)
os.makedirs(output_folder, exist_ok=True)
# 生成柱状图
df.plot(kind='bar')
plt.savefig(os.path.join(output_folder, 'bar_chart.png'))
plt.close()
# 生成折线图
df.plot(kind='line')
plt.savefig(os.path.join(output_folder, 'line_chart.png'))
plt.close()适用场景:销售数据分析、业绩报表生成。
每天早上8点自动发日报?
这个脚本帮你实现:
import smtplib, schedule
def send_daily_report():
msg = MIMEText("今日报告内容...")
msg['Subject'] = '每日报告'
with smtplib.SMTP_SSL('smtp.gmail.com', 465) as server:
server.login('your_email@gmail.com', 'password')
server.sendmail(sender, receiver, msg.as_string())
schedule.every().day.at("08:00").do(send_daily_report)适用场景:自动化日报推送。
需要定期执行某些任务?
让脚本自动跑起来:
import schedule, time
def job():
print("执行数据库清理...")
schedule.every(3).hours.do(job) # 每3小时执行
while True:
schedule.run_pending()
time.sleep(1)适用场景:定期维护任务。
想在群里自动回复消息?
用这个脚本:
import itchat
@itchat.msg_register(itchat.content.TEXT)
def text_reply(msg):
if '帮助' in msg['Text']:
return '可以问:天气、时间、笑话'
elif '天气' in msg['Text']:
return '今天晴转多云,温度20-28度'
return '你好!我是群助手'
itchat.auto_login(hotReload=True)
itchat.run()适用场景:客户服务群、工作群自动回复。
运维告警需要及时通知?
用企业微信机器人:
import requests
def send_wecom_message(webhook_url, content):
data = {
"msgtype": "text",
"text": {
"content": content
}
}
response = requests.post(webhook_url, json=data)
return response.json()
# 使用示例
webhook_url = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=YOUR_KEY"
send_wecom_message(webhook_url, "服务器监控告警:CPU使用率超过90%")适用场景:运维告警、工作通知推送。
需要批量下载邮件里的附件?
这个脚本帮你自动下载:
import imaplib
import email
import os
def download_email_attachments(email_user, email_password, output_folder):
mail = imaplib.IMAP4_SSL('imap.gmail.com')
mail.login(email_user, email_password)
mail.select('inbox')
_, messages = mail.search(None, '(UNSEEN)')
for msg_id in messages[0].split():
_, msg_data = mail.fetch(msg_id, '(RFC822)')
email_message = email.message_from_bytes(msg_data[0][1])
for part in email_message.walk():
if part.get_content_disposition() == 'attachment':
filename = part.get_filename()
if filename:
filepath = os.path.join(output_folder, filename)
with open(filepath, 'wb') as f:
f.write(part.get_payload(decode=True))适用场景:自动处理发票、合同等附件。
图片太大占空间?
批量压缩一下:
from PIL import Image
def compress_image(input_path, output_path, quality=85):
img = Image.open(input_path)
if max(img.size) > 1200:
img.thumbnail((1200, 1200))
img.save(output_path, quality=quality, optimize=True)适用场景:网站图片优化、邮件附件压缩。
需要快速剪辑视频?
用Python自动化:
import moviepy.editor as pyedit
video = pyedit.VideoFileClip("vid.mp4")
final_vid = video.subclip(0, 10).speedx(2) # 截取前10秒并加速2倍
final_vid.write_videofile("output.mp4")适用场景:社交媒体内容制作。
保护图片版权?
批量添加水印:
from PIL import Image, ImageDraw, ImageFont
def add_watermark(input_path, output_path, watermark_text):
img = Image.open(input_path).convert('RGBA')
txt_img = Image.new('RGBA', img.size, (255, 255, 255, 0))
draw = ImageDraw.Draw(txt_img)
font = ImageFont.truetype('arial.ttf', 36)
text_width, text_height = draw.textsize(watermark_text, font)
position = (img.width - text_width - 20, img.height - text_height - 20)
draw.text(position, watermark_text, fill=(255, 255, 255, 128), font=font)
watermarked = Image.alpha_composite(img, txt_img)
watermarked.save(output_path)适用场景:版权保护、品牌标识添加。
需要采集网站数据?
爬虫脚本帮你搞定:
import requests
from bs4 import BeautifulSoup
def scrape_news(url):
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
return [h2.text for h2 in soup.find_all('h2')]适用场景:竞品监控、数据聚合。
系统出问题了,怎么排查?
快速筛选错误日志:
def analyze_log(log_file):
with open(log_file, 'r') as f:
return [line for line in f if "ERROR" in line]适用场景:系统故障排查。
这些脚本要怎么用才高效?
给你几个建议:
这些脚本覆盖了日常办公中80%的重复性工作,平均可提升3倍效率。
建议你从文件整理和备份脚本入手,逐步扩展到数据抓取和报告生成。
Python自动化不是要取代你,而是帮你解放双手。
让机器处理那些重复、枯燥的工作,你才能把时间花在更有价值的事情上。
效率的本质,不是做得更快,而是让电脑帮你做。
💬 你觉得哪个脚本最实用?评论区聊聊~
“无他,惟手熟尔”!有需要的用起来!
本文分享自 Nicholas与Pypi 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!