20個(gè)職場(chǎng)人必須會(huì)的Python辦公腳本分享
如果你還在每天復(fù)制粘貼到深夜,或者因?yàn)楹喜装賯€(gè)表格而想砸電腦,請(qǐng)立刻停下!在這個(gè)數(shù)據(jù)爆炸的時(shí)代,Python 早就不是程序員的專(zhuān)屬,它是每個(gè)職場(chǎng)人手里最強(qiáng)的武器。今天我不講大道理,只上干貨——20個(gè)拿來(lái)就能用的Python腳本,直接解決你90%的重復(fù)勞動(dòng)。從Excel批量處理到自動(dòng)化郵件,從PDF秒速拆分到數(shù)據(jù)可視化,每一個(gè)都是為了讓你早點(diǎn)下班而生。收藏這一篇,你的職場(chǎng)效率至少翻倍!
01. Excel 篇:多表一鍵合并,告別復(fù)制粘貼
痛點(diǎn):手動(dòng)合并100個(gè)Excel表,眼花手抖還出錯(cuò)
月底匯總報(bào)表是每個(gè)人的噩夢(mèng)。不管是銷(xiāo)售日?qǐng)?bào)、考勤表還是各部門(mén)預(yù)算,打開(kāi)一個(gè)復(fù)制一個(gè),不僅慢,還容易因?yàn)楦袷絾?wèn)題報(bào)錯(cuò)。半小時(shí)的工作量,手動(dòng)做可能要一下午。
# 運(yùn)行環(huán)境:Python≥3.8
# pip install pandas openpyxl
import pandas as pd
import os
def merge_excels(folder_path, output_file):
# 獲取文件夾下所有xlsx文件
files = [f for f in os.listdir(folder_path) if f.endswith('.xlsx')]
all_data = []
print(f"發(fā)現(xiàn) {len(files)} 個(gè)文件,開(kāi)始合并...")
for file in files:
file_path = os.path.join(folder_path, file)
# 讀取數(shù)據(jù),默認(rèn)讀取第一個(gè)sheet
df = pd.read_excel(file_path)
all_data.append(df)
# 合并所有數(shù)據(jù)
result = pd.concat(all_data, ignore_index=True)
# 導(dǎo)出結(jié)果
result.to_excel(output_file, index=False)
print(f"合并完成!文件已保存為:{output_file}")
# 使用示例:將 'data' 文件夾下的所有表格合并
merge_excels('./data', '合并匯總.xlsx')
效果對(duì)比:原本耗時(shí)3小時(shí)的手工粘貼,現(xiàn)在只需3秒,所有同構(gòu)表格自動(dòng)拼接,且無(wú)錯(cuò)漏。
一鍵總結(jié):表格再多,三秒搞定。
02. Excel 篇:按條件拆分Sheet,精準(zhǔn)分發(fā)
痛點(diǎn):把總表拆分給各部門(mén),篩選復(fù)制太繁瑣
總表里有全公司的數(shù)據(jù),需要按“部門(mén)”拆分成單獨(dú)的Excel文件發(fā)給各負(fù)責(zé)人。手動(dòng)篩選、復(fù)制、粘貼、保存,重復(fù)幾十次,枯燥且容易發(fā)錯(cuò)人。
# 運(yùn)行環(huán)境:Python≥3.8
# pip install pandas openpyxl
import pandas as pd
def split_excel_by_column(file_path, column_name):
# 讀取總表
df = pd.read_excel(file_path)
# 獲取該列所有唯一值(如所有部門(mén)名稱(chēng))
unique_values = df[column_name].unique()
for value in unique_values:
# 篩選數(shù)據(jù)
new_df = df[df[column_name] == value]
# 保存為新文件
filename = f"{value}_數(shù)據(jù).xlsx"
new_df.to_excel(filename, index=False)
print(f"已生成:{filename}")
# 使用示例:按 '部門(mén)' 列拆分 '總表.xlsx'
split_excel_by_column('總表.xlsx', '部門(mén)')
效果對(duì)比:自動(dòng)按部門(mén)生成獨(dú)立文件,100個(gè)部門(mén)也能瞬間拆完,文件名自動(dòng)規(guī)范。
一鍵總結(jié):拆分分發(fā),不再頭禿。
03. Word 篇:批量替換合同模板,拒絕機(jī)械勞動(dòng)
痛點(diǎn):幾百份合同只需改個(gè)名字和日期
HR和法務(wù)常遇到的場(chǎng)景:合同模板一樣,只有甲方名稱(chēng)、金額、日期不同。逐個(gè)打開(kāi)Word修改、另存為,不僅效率低,還容易漏改某個(gè)角落。
# 運(yùn)行環(huán)境:Python≥3.8
# pip install python-docx
from docx import Document
def batch_generate_contracts(template_path, data_dict):
"""
data_dict: {'張三': '2023-10-01', '李四': '2023-10-02'}
"""
for name, date in data_dict.items():
doc = Document(template_path)
# 遍歷所有段落進(jìn)行替換
for paragraph in doc.paragraphs:
if '{name}' in paragraph.text:
paragraph.text = paragraph.text.replace('{name}', name)
if '{date}' in paragraph.text:
paragraph.text = paragraph.text.replace('{date}', date)
file_name = f"合同_{name}.docx"
doc.save(file_name)
print(f"生成合同:{file_name}")
# 使用示例:模板中需用 {name} 和 {date} 占位
data = {'王小明': '2024-01-01', '趙鐵柱': '2024-01-05'}
batch_generate_contracts('合同模板.docx', data)
效果對(duì)比:只要準(zhǔn)備好名單,一鍵生成成百上千份Word文檔,格式完全統(tǒng)一。
一鍵總結(jié):模板替換,批量直出。
04. Word 篇:Word 批量轉(zhuǎn) PDF,格式不亂跑
痛點(diǎn):發(fā)給客戶(hù)的文檔必須是PDF,Word一個(gè)個(gè)轉(zhuǎn)太慢
Word文檔發(fā)給別人容易跑版,必須轉(zhuǎn)PDF。雖然Word自帶導(dǎo)出功能,但當(dāng)你有50個(gè)文檔要轉(zhuǎn)時(shí),重復(fù)的“打開(kāi)-導(dǎo)出-關(guān)閉”操作能讓人崩潰。
# 運(yùn)行環(huán)境:Windows, Python≥3.8
# pip install docx2pdf
from docx2pdf import convert
import os
def word_to_pdf_batch(folder_path):
# 獲取所有docx文件
files = [f for f in os.listdir(folder_path) if f.endswith('.docx')]
print(f"開(kāi)始轉(zhuǎn)換 {len(files)} 個(gè)文件...")
for file in files:
word_path = os.path.join(folder_path, file)
pdf_path = os.path.join(folder_path, file.replace('.docx', '.pdf'))
# 轉(zhuǎn)換操作
convert(word_path, pdf_path)
print(f"轉(zhuǎn)換成功:{pdf_path}")
# 使用示例:轉(zhuǎn)換 'docs' 目錄下的所有文檔
word_to_pdf_batch('./docs')效果對(duì)比:無(wú)需打開(kāi)Word軟件,后臺(tái)靜默批量轉(zhuǎn)換,速度極快且保留原格式。
一鍵總結(jié):格式鎖定,一鍵轉(zhuǎn)換。
05. PPT 篇:從文案大綱一鍵生成 PPT 骨架
痛點(diǎn):不僅要寫(xiě)方案,還要一行行粘進(jìn)PPT
寫(xiě)完Word大綱,還要花大量時(shí)間把標(biāo)題和正文復(fù)制到PPT里做成幻燈片。雖然不算難,但這種純體力活極其消磨從零開(kāi)始做PPT的熱情。
# 運(yùn)行環(huán)境:Python≥3.8
# pip install python-pptx
from pptx import Presentation
def create_ppt_from_text(title_text, content_list, filename):
prs = Presentation()
# 創(chuàng)建封面
slide = prs.slides.add_slide(prs.slide_layouts[0])
slide.shapes.title.text = title_text
slide.placeholders[1].text = "自動(dòng)生成匯報(bào)"
# 創(chuàng)建內(nèi)容頁(yè)
for content in content_list:
slide = prs.slides.add_slide(prs.slide_layouts[1])
slide.shapes.title.text = content['title']
slide.placeholders[1].text = content['body']
prs.save(filename)
print(f"PPT已生成:{filename}")
# 使用示例
contents = [
{'title': '項(xiàng)目背景', 'body': '市場(chǎng)需求增長(zhǎng)...'},
{'title': '執(zhí)行計(jì)劃', 'body': '第一階段:調(diào)研...'}
]
create_ppt_from_text("年度規(guī)劃", contents, "匯報(bào).pptx")
效果對(duì)比:直接把結(jié)構(gòu)化文本變成PPT頁(yè)面,你只需要專(zhuān)注于美化,省去搬運(yùn)時(shí)間。
一鍵總結(jié):大綱變片,效率起飛。
06. 郵件篇:自動(dòng)發(fā)送帶附件的工資條
痛點(diǎn):每個(gè)人的工資條都不一樣,不能群發(fā)
HR每月的痛:工資條必須一對(duì)一發(fā)送,每個(gè)人附件不同、正文稱(chēng)呼不同。手動(dòng)發(fā)幾百封郵件,不僅手軟,發(fā)錯(cuò)一個(gè)就是重大事故。
# 運(yùn)行環(huán)境:Python≥3.8
# pip install yagmail
import yagmail
import time
def send_salary_emails(sender_email, password, staff_data):
# 連接郵箱服務(wù)器 (以QQ郵箱為例)
yag = yagmail.SMTP(user=sender_email, password=password, host='smtp.qq.com')
for staff in staff_data:
email = staff['email']
name = staff['name']
file_path = staff['attachment']
contents = [
f"親愛(ài)的 {name}:",
"這是您本月的工資條,請(qǐng)查收。",
"如有疑問(wèn)請(qǐng)聯(lián)系財(cái)務(wù)部。"
]
# 發(fā)送郵件
yag.send(to=email, subject='本月工資條', contents=contents, attachments=file_path)
print(f"已發(fā)送給:{name}")
time.sleep(2) # 避免發(fā)送過(guò)快被封
# 使用示例
staffs = [{'name': '張三', 'email': 'zhangsan@ex.com', 'attachment': '張三_工資.xlsx'}]
# 注意:密碼通常是郵箱的授權(quán)碼
# send_salary_emails('your_email@qq.com', 'your_auth_code', staffs)
效果對(duì)比:精準(zhǔn)的一對(duì)一投遞,支持自定義稱(chēng)呼和專(zhuān)屬附件,發(fā)信零失誤。
一鍵總結(jié):千人千面,自動(dòng)送達(dá)。
07. PDF 篇:多份 PDF 合并為一個(gè)文件
痛點(diǎn):掃描出來(lái)的文件全是散頁(yè),要把它們拼起來(lái)
掃描儀生成了50個(gè)PDF單頁(yè)文件,但領(lǐng)導(dǎo)要一個(gè)完整的PDF文檔。用在線(xiàn)工具怕泄密,用專(zhuān)業(yè)軟件要付費(fèi),手動(dòng)拼合簡(jiǎn)直是折磨。
# 運(yùn)行環(huán)境:Python≥3.8
# pip install pypdf
from pypdf import PdfWriter
import os
def merge_pdfs(folder_path, output_filename):
merger = PdfWriter()
# 按文件名排序
files = sorted([f for f in os.listdir(folder_path) if f.endswith('.pdf')])
for pdf in files:
merger.append(os.path.join(folder_path, pdf))
merger.write(output_filename)
merger.close()
print(f"成功合并 {len(files)} 個(gè)文件為 {output_filename}")
# 使用示例
merge_pdfs('./scan_files', '完整合同.pdf')
效果對(duì)比:無(wú)論多少個(gè)散亂的PDF,瞬間整合成一個(gè)整潔的文檔,且順序可控。
一鍵總結(jié):散頁(yè)歸一,整潔有序。
08. PDF 篇:從 PDF 中提取特定頁(yè)面
痛點(diǎn):只要幾百頁(yè)文檔中的第5到第10頁(yè)
收到一份巨大的行業(yè)報(bào)告,你只需要其中關(guān)于“市場(chǎng)分析”的那幾頁(yè)發(fā)給客戶(hù)。截圖不清晰,打印再掃描太蠢,你需要無(wú)損提取。
# 運(yùn)行環(huán)境:Python≥3.8
# pip install pypdf
from pypdf import PdfReader, PdfWriter
def extract_pages(input_pdf, output_pdf, start_page, end_page):
reader = PdfReader(input_pdf)
writer = PdfWriter()
# 頁(yè)面索引從0開(kāi)始,所以要減1
# 注意:range不包含結(jié)束值,但我們要包含end_page
for i in range(start_page - 1, end_page):
writer.add_page(reader.pages[i])
with open(output_pdf, "wb") as f:
writer.write(f)
print(f"已提取第 {start_page} 到 {end_page} 頁(yè)")
# 使用示例:提取第 5 到 10 頁(yè)
extract_pages('行業(yè)報(bào)告.pdf', '市場(chǎng)分析部分.pdf', 5, 10)
效果對(duì)比:精準(zhǔn)切割PDF,想取哪頁(yè)取哪頁(yè),無(wú)需重新編輯源文件。
一鍵總結(jié):取其精華,去其糟粕。
09. 文件管理:批量重命名文件,治愈強(qiáng)迫癥
痛點(diǎn):幾千個(gè)照片文件全是無(wú)意義的亂碼名
活動(dòng)拍了幾千張照片,文件名全是“IMG_2023…”,需要改成“年會(huì)_序號(hào)”的格式。手動(dòng)改名不僅慢,還容易改重名或改錯(cuò)后綴。
# 運(yùn)行環(huán)境:Python≥3.8
# 無(wú)需安裝第三方庫(kù)
import os
def batch_rename(folder_path, prefix):
files = os.listdir(folder_path)
count = 1
for file in files:
# 跳過(guò)系統(tǒng)文件
if file.startswith('.'): continue
# 獲取后綴名
ext = os.path.splitext(file)[1]
new_name = f"{prefix}_{count:03d}{ext}"
old_path = os.path.join(folder_path, file)
new_path = os.path.join(folder_path, new_name)
os.rename(old_path, new_path)
print(f"重命名: {file} -> {new_name}")
count += 1
# 使用示例
batch_rename('./photos', '年會(huì)現(xiàn)場(chǎng)')
效果對(duì)比:一秒鐘讓幾千個(gè)文件整齊劃一,支持添加前綴、后綴、序號(hào)和日期。
一鍵總結(jié):批量更名,井井有條。
10. 文件管理:按擴(kuò)展名自動(dòng)歸類(lèi)整理桌面
痛點(diǎn):桌面全是文件,找個(gè)文檔像大海撈針
桌面堆滿(mǎn)了下載的圖片、文檔、壓縮包,亂得像垃圾場(chǎng)。想整理又懶得動(dòng),每次找文件都要靠搜索,嚴(yán)重影響心情和效率。
# 運(yùn)行環(huán)境:Python≥3.8
# 無(wú)需安裝第三方庫(kù)
import os
import shutil
def organize_desktop(desktop_path):
# 定義分類(lèi)規(guī)則
extensions = {
'圖片': ['.jpg', '.png', '.jpeg', '.gif'],
'文檔': ['.pdf', '.docx', '.xlsx', '.txt'],
'壓縮包': ['.zip', '.rar', '.7z']
}
for file in os.listdir(desktop_path):
file_path = os.path.join(desktop_path, file)
if os.path.isdir(file_path): continue # 跳過(guò)文件夾
ext = os.path.splitext(file)[1].lower()
for folder, exts in extensions.items():
if ext in exts:
target_folder = os.path.join(desktop_path, folder)
if not os.path.exists(target_folder):
os.makedirs(target_folder)
shutil.move(file_path, os.path.join(target_folder, file))
print(f"移動(dòng) {file} 到 {folder}")
# 使用示例
# organize_desktop(r'C:\Users\YourName\Desktop')
效果對(duì)比:運(yùn)行腳本,雜亂的桌面瞬間變得清清爽爽,所有文件各歸其位。
一鍵總結(jié):桌面整理,一鍵清爽。
11. 圖片處理:批量壓縮圖片,給硬盤(pán)瘦身
痛點(diǎn):圖片太大無(wú)法上傳,或者硬盤(pán)爆滿(mǎn)
幾十兆的高清圖要傳到網(wǎng)站或發(fā)給客戶(hù),經(jīng)常因?yàn)槲募^(guò)大被拒收。一張張用PS壓縮太慢,在線(xiàn)工具又有數(shù)量限制。
# 運(yùn)行環(huán)境:Python≥3.8
# pip install Pillow
from PIL import Image
import os
def compress_images(folder_path, quality=60):
output_folder = os.path.join(folder_path, 'compressed')
if not os.path.exists(output_folder):
os.makedirs(output_folder)
for file in os.listdir(folder_path):
if file.lower().endswith(('.png', '.jpg', '.jpeg')):
img_path = os.path.join(folder_path, file)
with Image.open(img_path) as img:
# 轉(zhuǎn)換為RGB模式以防報(bào)錯(cuò)
img = img.convert('RGB')
save_path = os.path.join(output_folder, file)
img.save(save_path, quality=quality, optimize=True)
print(f"壓縮完成:{file}")
# 使用示例:質(zhì)量60%
compress_images('./product_imgs', 60)
效果對(duì)比:批量將幾百兆的圖片壓縮到十分之一大小,肉眼幾乎看不出畫(huà)質(zhì)損失。
一鍵總結(jié):無(wú)損瘦身,上傳無(wú)憂(yōu)。
12. 圖片處理:給敏感圖片批量加水印
痛點(diǎn):不僅要發(fā)圖,還要防止被盜用或泄密
內(nèi)部資料截圖、設(shè)計(jì)稿外發(fā),必須加上“僅供內(nèi)部使用”的水印。手動(dòng)加水印效率低且位置不統(tǒng)一,腳本可以統(tǒng)一風(fēng)格。
# 運(yùn)行環(huán)境:Python≥3.8
# pip install Pillow
from PIL import Image, ImageDraw, ImageFont
import os
def add_watermark(folder_path, text):
# 需準(zhǔn)備一個(gè)字體文件,如 arial.ttf
font = ImageFont.truetype("arial.ttf", 36)
for file in os.listdir(folder_path):
if file.lower().endswith(('.jpg', '.png')):
img = Image.open(os.path.join(folder_path, file))
draw = ImageDraw.Draw(img)
# 在右下角添加水印
width, height = img.size
draw.text((width-200, height-50), text, fill=(255,255,255,128), font=font)
img.save(os.path.join(folder_path, f"watermarked_{file}"))
print(f"已加水?。簕file}")
# 使用示例
# add_watermark('./drafts', 'CONFIDENTIAL')
效果對(duì)比:所有圖片統(tǒng)一位置添加半透明水印,既保護(hù)版權(quán)又不影響查看。
一鍵總結(jié):版權(quán)保護(hù),滴水不漏。
13. 數(shù)據(jù)可視化:一鍵生成銷(xiāo)售報(bào)表柱狀圖
痛點(diǎn):看著密密麻麻的Excel數(shù)據(jù),找不到重點(diǎn)
老板想看趨勢(shì),你卻只給了一堆數(shù)字。用Excel做圖表雖然行,但每次更新數(shù)據(jù)都要重新調(diào)整圖表格式,費(fèi)時(shí)費(fèi)力。
# 運(yùn)行環(huán)境:Python≥3.8
# pip install pandas matplotlib
import pandas as pd
import matplotlib.pyplot as plt
def generate_bar_chart(csv_file, x_col, y_col):
df = pd.read_csv(csv_file)
# 設(shè)置圖表大小和風(fēng)格
plt.figure(figsize=(10, 6))
plt.bar(df[x_col], df[y_col], color='skyblue')
plt.title('銷(xiāo)售數(shù)據(jù)概覽')
plt.xlabel(x_col)
plt.ylabel(y_col)
plt.xticks(rotation=45)
plt.tight_layout()
plt.savefig('chart_output.png')
print("圖表已生成:chart_output.png")
# 使用示例
# generate_bar_chart('sales.csv', '月份', '銷(xiāo)售額')
效果對(duì)比:數(shù)據(jù)更新后,一鍵生成美觀(guān)的報(bào)表圖,直接插入PPT,匯報(bào)更有說(shuō)服力。
一鍵總結(jié):數(shù)據(jù)說(shuō)話(huà),一目了然。
14. 爬蟲(chóng)取數(shù):抓取新聞標(biāo)題,快速了解行業(yè)動(dòng)態(tài)
痛點(diǎn):每天手動(dòng)瀏覽幾十個(gè)網(wǎng)站收集資訊
做市場(chǎng)調(diào)研或競(jìng)品分析,每天要打開(kāi)一堆網(wǎng)站看有沒(méi)有新文章。人工刷新不僅慢,還容易漏掉重要信息。
# 運(yùn)行環(huán)境:Python≥3.8
# pip install requests beautifulsoup4
import requests
from bs4 import BeautifulSoup
def fetch_titles(url):
headers = {'User-Agent': 'Mozilla/5.0'}
try:
response = requests.get(url, headers=headers)
soup = BeautifulSoup(response.text, 'html.parser')
# 假設(shè)標(biāo)題在 h2 標(biāo)簽中,具體需根據(jù)網(wǎng)站調(diào)整
titles = soup.find_all('h2')
for idx, title in enumerate(titles[:10], 1):
print(f"{idx}. {title.get_text().strip()}")
except Exception as e:
print(f"抓取失敗: {e}")
# 使用示例 (請(qǐng)遵守網(wǎng)站robots協(xié)議)
# fetch_titles('https://news.ycombinator.com/')
效果對(duì)比:一杯咖啡的時(shí)間,腳本自動(dòng)幫你把幾十個(gè)網(wǎng)站的最新標(biāo)題抓取并匯總。
一鍵總結(jié):資訊聚合,快人一步。
15. 日程提醒:重要會(huì)議不錯(cuò)過(guò),桌面彈窗提醒
痛點(diǎn):忙起來(lái)忘了時(shí)間,錯(cuò)過(guò)重要會(huì)議
埋頭寫(xiě)代碼或做表,完全忘了下午三點(diǎn)有會(huì)。手機(jī)提醒有時(shí)候沒(méi)聽(tīng)到,電腦屏幕上的強(qiáng)彈窗才是最有效的提醒。
# 運(yùn)行環(huán)境:Python≥3.8
# pip install plyer
from plyer import notification
import time
def schedule_reminder(title, message, delay_seconds):
print(f"提醒設(shè)置成功,{delay_seconds}秒后提醒...")
time.sleep(delay_seconds)
notification.notify(
title=title,
message=message,
app_name='辦公助手',
timeout=10
)
# 使用示例:1小時(shí)(3600秒)后提醒喝水
schedule_reminder("休息提醒", "工作一小時(shí)了,起來(lái)喝杯水!", 3600)
效果對(duì)比:在電腦右下角彈出原生通知,無(wú)法忽視的強(qiáng)提醒,拯救健忘癥。
一鍵總結(jié):貼身管家,準(zhǔn)時(shí)提醒。
16. 工具類(lèi):生成二維碼,方便手機(jī)查看鏈接
痛點(diǎn):電腦上的長(zhǎng)鏈接,想發(fā)給手機(jī)看
電腦上查到一個(gè)很棒的資料,想在手機(jī)上打開(kāi)或者發(fā)到微信群。手打網(wǎng)址是不可能的,復(fù)制發(fā)送又麻煩,不如直接轉(zhuǎn)碼掃一掃。
# 運(yùn)行環(huán)境:Python≥3.8
# pip install qrcode[pil]
import qrcode
def generate_qrcode(url, filename='qrcode.png'):
qr = qrcode.QRCode(
version=1,
box_size=10,
border=5
)
qr.add_data(url)
qr.make(fit=True)
img = qr.make_image(fill_color="black", back_color="white")
img.save(filename)
print(f"二維碼已生成:{filename}")
# 使用示例
generate_qrcode('https://www.python.org')
效果對(duì)比:任何文本或鏈接一鍵轉(zhuǎn)為高清二維碼,手機(jī)掃一掃即達(dá),分享超便捷。
一鍵總結(jié):碼上連接,跨屏無(wú)縫。
17. 工具類(lèi):監(jiān)控網(wǎng)頁(yè)變化,搶票搶課必備
痛點(diǎn):一直刷網(wǎng)頁(yè)看有沒(méi)有名額,浪費(fèi)時(shí)間
想買(mǎi)的票、想報(bào)的課、想搶的號(hào),不知道什么時(shí)候放出。人工盯著屏幕刷不僅累,還刷不過(guò)別人。
# 運(yùn)行環(huán)境:Python≥3.8
# pip install requests
import requests
import time
def monitor_website(url, keyword):
print(f"開(kāi)始監(jiān)控 {url}...")
headers = {'User-Agent': 'Mozilla/5.0'}
while True:
try:
response = requests.get(url, headers=headers)
if keyword in response.text:
print(f"【發(fā)現(xiàn)目標(biāo)】關(guān)鍵詞 '{keyword}' 出現(xiàn)了!")
break
else:
print("暫無(wú)變化,10秒后重試...")
except:
print("網(wǎng)絡(luò)請(qǐng)求錯(cuò)誤")
time.sleep(10)
# 使用示例
# monitor_website('http://example.com/tickets', '有票')
效果對(duì)比:24小時(shí)不間斷監(jiān)控,一旦頁(yè)面出現(xiàn)關(guān)鍵詞立即報(bào)警,徹底解放雙眼。
一鍵總結(jié):全天盯梢,毫秒響應(yīng)。
18. 數(shù)據(jù)處理:JSON 數(shù)據(jù)轉(zhuǎn) CSV,方便Excel查看
痛點(diǎn):IT給的數(shù)據(jù)是JSON,Excel打不開(kāi)
開(kāi)發(fā)給你的數(shù)據(jù)導(dǎo)出是JSON格式,像亂碼一樣,根本沒(méi)法做透 視表。你需要把它轉(zhuǎn)換成Excel能識(shí)別的CSV表格。
# 運(yùn)行環(huán)境:Python≥3.8
# 無(wú)需安裝第三方庫(kù)
import json
import csv
def json_to_csv(json_file, csv_file):
with open(json_file, 'r', encoding='utf-8') as f:
data = json.load(f)
# 假設(shè)data是列表且元素為字典
if not data: return
keys = data[0].keys()
with open(csv_file, 'w', newline='', encoding='utf-8-sig') as f:
writer = csv.DictWriter(f, fieldnames=keys)
writer.writeheader()
writer.writerows(data)
print(f"轉(zhuǎn)換完成:{csv_file}")
# 使用示例
# json_to_csv('data.json', 'data.csv')
效果對(duì)比:復(fù)雜的數(shù)據(jù)結(jié)構(gòu)瞬間變成整齊的表格,人人都能看懂,人人都能分析。
一鍵總結(jié):格式轉(zhuǎn)換,數(shù)據(jù)可視。
19. 會(huì)議整理:語(yǔ)音轉(zhuǎn)文字,會(huì)議紀(jì)要神器 (調(diào)用API版)
痛點(diǎn):開(kāi)會(huì)錄音兩小時(shí),整理紀(jì)要兩小時(shí)
錄音筆錄了一堆,回去要反復(fù)聽(tīng)寫(xiě)整理,效率極低。雖然有現(xiàn)成軟件,但自制腳本可以對(duì)接更精準(zhǔn)的云服務(wù)。
# 運(yùn)行環(huán)境:Python≥3.8
# pip install SpeechRecognition
# 需安裝 ffmpeg
import speech_recognition as sr
def audio_to_text(audio_file):
r = sr.Recognizer()
with sr.AudioFile(audio_file) as source:
print("正在讀取音頻...")
audio_data = r.record(source)
try:
# 這里使用默認(rèn)的 Google API,實(shí)際建議替換為百度/訊飛API
text = r.recognize_google(audio_data, language='zh-CN')
print("識(shí)別結(jié)果:")
print(text)
except sr.UnknownValueError:
print("無(wú)法識(shí)別音頻內(nèi)容")
except sr.RequestError:
print("請(qǐng)求服務(wù)失敗")
# 使用示例 (僅支持 wav 等特定格式)
# audio_to_text('meeting_clip.wav')
效果對(duì)比:雖然簡(jiǎn)陋,但能快速將清晰的語(yǔ)音轉(zhuǎn)為文本草稿,大幅縮減聽(tīng)寫(xiě)時(shí)間。
一鍵總結(jié):聽(tīng)音辨字,解放雙手。
20. 安全實(shí)用:隨機(jī)生成強(qiáng)密碼,保護(hù)賬號(hào)安全
痛點(diǎn):所有賬號(hào)都用一個(gè)密碼,一盜全盜
為了好記,所有平臺(tái)都用同一個(gè)密碼。一旦某個(gè)小網(wǎng)站泄露,支付寶和微信都危險(xiǎn)了。你需要為每個(gè)平臺(tái)生成不同的強(qiáng)密碼。
# 運(yùn)行環(huán)境:Python≥3.8
# 無(wú)需安裝第三方庫(kù)
import string
import secrets
def generate_password(length=12):
# 包含大小寫(xiě)字母、數(shù)字和特殊字符
alphabet = string.ascii_letters + string.digits + string.punctuation
password = ''.join(secrets.choice(alphabet) for i in range(length))
print(f"生成的強(qiáng)密碼:{password}")
return password
# 使用示例:生成3個(gè)16位強(qiáng)密碼
for _ in range(3):
generate_password(16)
效果對(duì)比:生成包含各種字符的隨機(jī)密碼,黑客根本猜不到,賬號(hào)安全等級(jí)Max。
一鍵總結(jié):安全設(shè)防,隱患?xì)w零。
以上就是20個(gè)職場(chǎng)人必須會(huì)的Python辦公腳本分享的詳細(xì)內(nèi)容,更多關(guān)于Python辦公腳本的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
python 利用pywifi模塊實(shí)現(xiàn)連接網(wǎng)絡(luò)破解wifi密碼實(shí)時(shí)監(jiān)控網(wǎng)絡(luò)
這篇文章主要介紹了python 利用pywifi模塊實(shí)現(xiàn)連接網(wǎng)絡(luò)破解wifi密碼實(shí)時(shí)監(jiān)控網(wǎng)絡(luò),需要的朋友可以參考下2019-09-09
Python的ORM框架中SQLAlchemy庫(kù)的查詢(xún)操作的教程
這篇文章主要介紹了Python的ORM框架中SQLAlchemy庫(kù)的查詢(xún)操作的教程,SQLAlchemy用來(lái)操作數(shù)據(jù)庫(kù)十分方便,需要的朋友可以參考下2015-04-04
python使用scrapy發(fā)送post請(qǐng)求的坑
這篇文章主要介紹了使用scrapy發(fā)送post請(qǐng)求的坑,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-09-09
使用Matplotlib創(chuàng)建基本圖表的詳細(xì)指南
Matplotlib 是一個(gè)功能強(qiáng)大的 Python 庫(kù),用于創(chuàng)建各種類(lèi)型的圖表和可視化,在本文中,我們將提供一個(gè)完整的指南,介紹如何使用 Matplotlib 創(chuàng)建基本的圖表,包括折線(xiàn)圖、散點(diǎn)圖、柱狀圖和餅圖,感興趣的小伙伴跟著小編一起來(lái)看看吧2024-05-05
python添加不同目錄下路徑導(dǎo)致vscode無(wú)法識(shí)別這些路徑的問(wèn)題及操作步驟
本文介紹了Python中動(dòng)態(tài)添加路徑導(dǎo)致VSCode擴(kuò)展(如Pylance)無(wú)法識(shí)別的問(wèn)題,提出通過(guò)配置python.analysis.extraPaths和啟用executeinfiledir兩種解決方案,確保路徑正確且區(qū)分運(yùn)行方式,以解決代碼補(bǔ)全、文件讀取等問(wèn)題,感興趣的朋友跟隨小編一起看看吧2025-06-06
python?numpy庫(kù)中數(shù)組遍歷的方法
本文主要介紹了python?numpy庫(kù)中數(shù)組遍歷的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08

