最近后臺留言太多小伙伴在問:“有沒有那種復制粘貼就能用的Python腳本?我想實現個xxx小功能……”
所以今天這篇文章,我把我平時自己在用的、幫同事們寫過的10個超實用的Python辦公小腳本都整理出來了。每一個都是:復制粘貼就能跑,不用太費腦子的那種。
不說廢話了,直接開整。
腳本1:批量重命名文件(比如圖片、文檔等)
?? 場景:你是不是也有那種文件名亂七八糟的文件夾?想改名字改到吐血?
import os
folder_path = r'D:\桌面\照片'
for count, filename in enumerate(os.listdir(folder_path)):
ext = os.path.splitext(filename)[1]
new_name = f'pic_{count + 1}{ext}'
os.rename(os.path.join(folder_path, filename),
os.path.join(folder_path, new_name))
print("重命名完成~")
?? 解釋一下:
enumerate()
:給文件加個序號。os.path.splitext()
:分離文件名和擴展名,比如 .jpg
、.docx
- 運行之后,文件就會按
pic_1.jpg
、pic_2.jpg
這樣排列。
?? 小細節(jié):注意 路徑不能有錯別字
,不然你會懷疑人生。
腳本2:Excel多個表合并成一個(不用再點開每個復制粘貼了)
import pandas as pd
import os
folder = r'D:\桌面\日報'
all_data = pd.DataFrame()
for file in os.listdir(folder):
if file.endswith('.xlsx'):
df = pd.read_excel(os.path.join(folder, file))
all_data = pd.concat([all_data, df], ignore_index=True)
all_data.to_excel('合并結果.xlsx', index=False)
print("合并搞定,保存在當前目錄~")
?? 適合啥人用? 做日報、月報的打工人,每天打開十幾個表,貼數據貼到眼花的朋友。
??小貼士:
- 如果每個表格結構不一樣,這個方法不太適用,得先保證列一致。
ignore_index=True
是為了讓行號連續(xù),看著舒服點。
腳本3:快速壓縮圖片文件大小(不改清晰度那種)
from PIL import Image
import os
folder = r'D:\圖片'
for img_name in os.listdir(folder):
if img_name.endswith(('.jpg', '.png')):
img_path = os.path.join(folder, img_name)
img = Image.open(img_path)
img.save(img_path, optimize=True, quality=70)
print("壓縮完成啦~")
?? 實測:一張原本4MB的圖片,壓完只有1MB不到,肉眼幾乎看不出變化。
腳本4:把文件夾里所有PDF合并成一個(發(fā)大文件前的好幫手)
from PyPDF2 import PdfMerger
import os
merger = PdfMerger()
folder = r'D:\PDF報告合集'
for file in sorted(os.listdir(folder)):
if file.endswith('.pdf'):
merger.append(os.path.join(folder, file))
merger.write("合并后的大文件.pdf")
merger.close()
print("PDF 合并完成 ?")
?? 小提醒:記得提前確認PDF順序對不對,不然合并完看起來會亂套!
腳本5:PDF 批量加水印(適合發(fā)文件保護原創(chuàng))
from PyPDF2 import PdfReader, PdfWriter
def add_watermark(input_pdf, output_pdf, watermark_pdf):
watermark = PdfReader(watermark_pdf).pages[0]
reader = PdfReader(input_pdf)
writer = PdfWriter()
for page in reader.pages:
page.merge_page(watermark)
writer.add_page(page)
with open(output_pdf, 'wb') as f:
writer.write(f)
add_watermark('原文件.pdf', '加水印后.pdf', '水印模板.pdf')
?? 重點提醒:水印建議做成透明PDF一頁,直接套上去。
腳本6:自動備份某個文件夾
import shutil
import datetime
src = r'D:\我的文檔'
dst = rf'D:\備份\backup_{datetime.datetime.now():%Y%m%d_%H%M%S}'
shutil.copytree(src, dst)
print(f"備份完成,文件放在:{dst}")
?? 妙用場景:想每天都備份一次重要資料,整合個定時任務,完美。
腳本7:統(tǒng)計一個txt中最常見的10個詞
from collections import Counter
with open('小說.txt', 'r', encoding='utf-8') as f:
words = f.read().split()
common_words = Counter(words).most_common(10)
print("出現頻率最高的10個詞:")
for word, count in common_words:
print(f"{word}:{count}")
?? 適合誰? 做文本處理分析、搞文案、看網絡小說想抓主線的朋友……
腳本8:檢測一個文件夾下有沒有重復文件(按內容判斷,不是名字)
import os
import hashlib
def file_hash(path):
with open(path, 'rb') as f:
return hashlib.md5(f.read()).hexdigest()
seen = {}
duplicates = []
folder = r'D:\收集的文件'
for filename in os.listdir(folder):
filepath = os.path.join(folder, filename)
if os.path.isfile(filepath):
hash_val = file_hash(filepath)
if hash_val in seen:
duplicates.append(filename)
else:
seen[hash_val] = filename
print("發(fā)現的重復文件:", duplicates)
?? 特別說明: 這不是簡單比名字,是比“內容”,哪怕你把文件改成“final_final_revised_v3最終版.docx”,它照樣能看穿一切 ??
腳本9:發(fā)送桌面通知(自動彈出提醒)
from plyer import notification
notification.notify(
title='花姐提醒你',
message='該喝水啦!保持水潤才能寫出漂亮代碼~',
timeout=5
)
?? 小用途: 可以定時提醒喝水、鍛煉、站起來,不然久坐真容易長腰肌勞損我跟你說……
腳本10:壓縮多個文件成zip(發(fā)給別人更方便)
import zipfile
import os
folder = r'D:\報告'
zip_path = '報告打包.zip'
with zipfile.ZipFile(zip_path, 'w') as zipf:
for file in os.listdir(folder):
zipf.write(os.path.join(folder, file), arcname=file)
print(f"已打包成:{zip_path}")
?? 生活小感悟: 別小看這些“打包”、“命名”的小活兒,真要靠人手干一天,不瘋也累趴了。寫個腳本,點一下就搞定,真的爽。
以上就是10個超實用的Python腳本,希望可以幫助到大家。
?轉自https://juejin.cn/post/7501160894845419561
該文章在 2025/5/9 10:21:56 編輯過