
你有没有遇到过这种情况?
每天重复着同样的操作:重命名文件、整理文件夹、合并Excel表格……
这些枯燥的工作占用了你大量时间,让你无法专注于更有价值的事情。
说实话,我之前也是这样。
直到我发现了一个方法——用Python自动化脚本。
简单来说就是:
让电脑帮你干活,而不是你帮电脑干活。
还在手动一个一个改文件名?
这个脚本可以自动为目录下所有文件添加前缀或替换关键词:
import osdef 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, shutildownloads_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, datetimedef 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 Imageimport osdef 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 osimport hashlibdef 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 duplicatesdef 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 pddef 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 PdfMergerdef merge_pdfs(pdf_list, output_file): merger = PdfMerger() for pdf in pdf_list: merger.append(pdf) merger.write(output_file)适用场景:合同整合、会议资料整理。
想把PDF里的文字提取出来编辑?
用这个脚本:
import PyPDF2def 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 pddef csv_to_excel(csv_path, excel_path): df = pd.read_csv(csv_path) df.to_excel(excel_path, index=False)适用场景:数据迁移、报表格式标准化。
数据看不懂?
自动生成图表让你一目了然:
import pandas as pdimport matplotlib.pyplot as pltdef 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, scheduledef 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, timedef 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 requestsdef 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 imaplibimport emailimport osdef 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 Imagedef 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 pyeditvideo = 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, ImageFontdef 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 requestsfrom bs4 import BeautifulSoupdef 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自动化不是要取代你,而是帮你解放双手。
让机器处理那些重复、枯燥的工作,你才能把时间花在更有价值的事情上。
效率的本质,不是做得更快,而是让电脑帮你做。
💬 你觉得哪个脚本最实用?评论区聊聊~
如果对你有帮助,点个在看让更多人看到吧 👇
往期阅读>>>
Python 自动化管理Jenkins的15个实用脚本,提升效率
App2Docker:如何无需编写Dockerfile也可以创建容器镜像
Python 自动化识别Nginx配置并导出为excel文件,提升Nginx管理效率
https://ima.qq.com/wiki/?shareId=f2628818f0874da17b71ffa0e5e8408114e7dbad46f1745bbd1cc1365277631c
