10個(gè)Python自動(dòng)化辦公實(shí)用腳本分享(小白入門)
在現(xiàn)代職場(chǎng)中,自動(dòng)化辦公能夠顯著提高工作效率。Python 是一門強(qiáng)大的編程語(yǔ)言,通過簡(jiǎn)單易懂的語(yǔ)法和豐富的第三方庫(kù),可以幫助我們實(shí)現(xiàn)各種自動(dòng)化任務(wù)。
在本文中,我們將介紹 10 個(gè)常見的 Python 自動(dòng)化辦公腳本,并結(jié)合生活中的實(shí)際例子進(jìn)行說明,方便新手小白理解。
1. 批量重命名文件
- 在日常工作中,我們經(jīng)常需要批量處理文件,例如將一組圖片或文檔重命名。使用 Python 的 os 模塊可以輕松實(shí)現(xiàn)。
- 假設(shè)你有一堆圖片文件,需要將它們統(tǒng)一命名為“項(xiàng)目_1.jpg”, “項(xiàng)目_2.jpg”等等。
import os
# 指定文件夾路徑
folder_path = 'path/to/your/folder'
# 切換到指定目錄
os.chdir(folder_path)
# 遍歷文件夾中的所有文件
for count, filename in enumerate(os.listdir(folder_path)):
# 生成新的文件名
new_name = f"項(xiàng)目_{count + 1}.jpg"
# 重命名文件
os.rename(filename, new_name)
print("文件重命名完成!")
2. 自動(dòng)發(fā)送電子郵件
- 通過 Python 的 smtplib 庫(kù),我們可以輕松地發(fā)送電子郵件,這對(duì)于發(fā)送報(bào)告、通知等信息非常有用。
- 假設(shè)你需要每天向你的團(tuán)隊(duì)發(fā)送一封日?qǐng)?bào),包含過去一天的工作總結(jié)。
import smtplib
from email.mime.text import MIMEText
# 郵件內(nèi)容
subject = "每日工作總結(jié)"
body = "今天完成了以下工作:\n- 完成了項(xiàng)目 A\n- 開始了項(xiàng)目 B"
# 發(fā)件人和收件人
sender = "your_email@example.com"
receiver = "team_member@example.com"
# 創(chuàng)建郵件
msg = MIMEText(body)
msg['Subject'] = subject
msg['From'] = sender
msg['To'] = receiver
# 發(fā)送郵件
with smtplib.SMTP('smtp.example.com', 587) as server:
server.starttls()
server.login(sender, 'your_password')
server.send_message(msg)
print("郵件發(fā)送成功!")
3. 從 Excel 中提取數(shù)據(jù)
- 使用 pandas 庫(kù),我們可以快速處理 Excel 文件,例如提取特定的數(shù)據(jù)或進(jìn)行數(shù)據(jù)分析。
- 假設(shè)你有一個(gè) Excel 表格,其中包含銷售數(shù)據(jù),你想提取出所有超過 1000 元的銷售記錄。
import pandas as pd
# 讀取 Excel 文件
df = pd.read_excel('sales_data.xlsx')
# 提取銷售額超過 1000 的記錄
high_sales = df[df['Sales'] > 1000]
# 打印結(jié)果
print("銷售額超過 1000 的記錄:\n", high_sales)
4. 自動(dòng)化生成 PDF 報(bào)告
- 借助 reportlab 庫(kù),我們可以動(dòng)態(tài)生成 PDF 文件,用于創(chuàng)建報(bào)告、發(fā)票等文檔。
- 假設(shè)你需要為每個(gè)項(xiàng)目生成一份 PDF 報(bào)告,包括項(xiàng)目名稱、負(fù)責(zé)人和狀態(tài)。
from reportlab.lib.pagesizes import letter
from reportlab.pdfgen import canvas
# 創(chuàng)建 PDF 文件
def generate_pdf(project_name, owner, status):
c = canvas.Canvas(f"{project_name}_report.pdf", pagesize=letter)
c.drawString(100, 750, f"項(xiàng)目名稱: {project_name}")
c.drawString(100, 730, f"負(fù)責(zé)人: {owner}")
c.drawString(100, 710, f"狀態(tài): {status}")
c.save()
# 生成示例報(bào)告
generate_pdf("項(xiàng)目A", "張三", "進(jìn)行中")
print("PDF 報(bào)告生成成功!")
5. 獲取網(wǎng)頁(yè)數(shù)據(jù)
- 使用 requests 和 BeautifulSoup 庫(kù),我們可以從網(wǎng)頁(yè)上抓取數(shù)據(jù),例如提取新聞標(biāo)題、產(chǎn)品價(jià)格等信息。
- 假設(shè)你想從某個(gè)新聞網(wǎng)站提取最新的新聞標(biāo)題。
import requests
from bs4 import BeautifulSoup
# 請(qǐng)求網(wǎng)頁(yè)
url = 'https://news.ycombinator.com/'
response = requests.get(url)
# 解析網(wǎng)頁(yè)
soup = BeautifulSoup(response.text, 'html.parser')
# 提取新聞標(biāo)題
titles = [title.get_text() for title in soup.find_all('a', class_='storylink')]
# 打印所有標(biāo)題
for index, title in enumerate(titles):
print(f"{index + 1}: {title}")
6. 定時(shí)執(zhí)行任務(wù)
- 使用 schedule 庫(kù)可以設(shè)置定時(shí)任務(wù),例如每天定時(shí)發(fā)送郵件或運(yùn)行數(shù)據(jù)分析腳本。
- 假設(shè)你希望每天晚上 7 點(diǎn)自動(dòng)發(fā)送一封周報(bào)郵件。
import schedule
import time
def job():
print("發(fā)送周報(bào)郵件...")
# 每天 19:00 執(zhí)行任務(wù)
schedule.every().day.at("19:00").do(job)
while True:
schedule.run_pending()
time.sleep(60) # 等待 1 分鐘
7. 批量下載文件
- 通過 Python 可以自動(dòng)化下載多個(gè)文件,例如從一個(gè)網(wǎng)頁(yè)或云端服務(wù)下載數(shù)據(jù)集。
- 假設(shè)你需要從某個(gè)網(wǎng)站批量下載圖片。
import requests
# 圖片鏈接列表
image_urls = [
'http://example.com/image1.jpg',
'http://example.com/image2.jpg',
'http://example.com/image3.jpg']
# 批量下載
for url in image_urls:
response = requests.get(url)
with open(url.split('/')[-1], 'wb') as f:
f.write(response.content)
print("所有圖片下載完成!")
8. 自動(dòng)整理文件
- 利用 os 和 shutil 模塊,可以根據(jù)文件類型將文件自動(dòng)分類整理到不同的文件夾中。
- 假設(shè)你的下載文件夾里混雜著很多文件,你希望按照文件類型進(jìn)行整理,比如將圖片、文檔和視頻分別放到不同的文件夾。
import os
import shutil
# 指定下載文件夾路徑
downloads_folder = '/path/to/downloads'
# 創(chuàng)建文件類型對(duì)應(yīng)的文件夾
os.makedirs(os.path.join(downloads_folder, 'Images'), exist_ok=True)
os.makedirs(os.path.join(downloads_folder, 'Documents'), exist_ok=True)
os.makedirs(os.path.join(downloads_folder, 'Videos'), exist_ok=True)
# 遍歷下載文件夾中的所有文件
for filename in os.listdir(downloads_folder):
if filename.endswith('.jpg') or filename.endswith('.png'):
shutil.move(os.path.join(downloads_folder, filename), os.path.join(downloads_folder, 'Images', filename))
elif filename.endswith('.pdf') or filename.endswith('.docx'):
shutil.move(os.path.join(downloads_folder, filename), os.path.join(downloads_folder, 'Documents', filename))
elif filename.endswith('.mp4'):
shutil.move(os.path.join(downloads_folder, filename), os.path.join(downloads_folder, 'Videos', filename))
print("文件整理完成!")
9. 數(shù)據(jù)可視化
- 使用 matplotlib 庫(kù),可以創(chuàng)建各種圖表,對(duì)數(shù)據(jù)進(jìn)行可視化分析,這樣更直觀。
- 假設(shè)你想要可視化每月的銷售數(shù)據(jù),以便了解趨勢(shì)。
import matplotlib.pyplot as plt
# 定義銷售數(shù)據(jù)
months = ['Jan', 'Feb', 'Mar', 'Apr', 'May']
sales = [2000, 3000, 4000, 5000, 6000]
# 創(chuàng)建柱狀圖
plt.bar(months, sales, color='skyblue')
plt.title('每月銷售數(shù)據(jù)')
plt.xlabel('月份')
plt.ylabel('銷售額')
plt.show()
10. 從 Google Sheets 獲取數(shù)據(jù)
- 通過 gspread 庫(kù),可以輕松訪問 Google Sheets 中的數(shù)據(jù),便于各類辦公自動(dòng)化任務(wù)。
- 如果你在 Google Sheets 上維護(hù)了一份客戶名單,想要獲取這些數(shù)據(jù)進(jìn)行處理。
import gspread
from oauth2client.service_account import ServiceAccountCredentials
# 使用 OAuth2 認(rèn)證
scope = ["https://spreadsheets.google.com/feeds", "https://www.googleapis.com/auth/drive"]
creds = ServiceAccountCredentials.from_json_keyfile_name('path/to/credentials.json', scope)
client = gspread.authorize(creds)
# 打開 Google Sheets 文件
sheet = client.open("客戶名單").sheet1
# 獲取所有數(shù)據(jù)
data = sheet.get_all_records()
# 打印客戶名單
for record in data:
print(record)
總結(jié)
- 通過以上 10 個(gè) Python 自動(dòng)化辦公腳本示例,我們可以看到 Python 在提高工作效率方面的巨大潛力。
- 這些腳本適合新手小白學(xué)習(xí),并能幫助他們解決實(shí)際工作中遇到的問題
到此這篇關(guān)于10個(gè)Python自動(dòng)化辦公實(shí)用腳本分享(小白入門)的文章就介紹到這了,更多相關(guān)Python自動(dòng)化辦公腳本內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python常用Web框架Django、Flask與Tornado介紹
這篇文章介紹了Python常用Web框架Django、Flask與Tornado,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-05-05
Python常見數(shù)據(jù)結(jié)構(gòu)之棧與隊(duì)列用法示例
這篇文章主要介紹了Python常見數(shù)據(jù)結(jié)構(gòu)之棧與隊(duì)列用法,結(jié)合實(shí)例形式簡(jiǎn)單介紹了數(shù)據(jù)結(jié)構(gòu)中棧與隊(duì)列的概念、功能及簡(jiǎn)單使用技巧,需要的朋友可以參考下2019-01-01
使用Python從零實(shí)現(xiàn)一個(gè)最基礎(chǔ)的MCP協(xié)議
模型上下文協(xié)議是?Anthropic?在2024年提出的一種開放標(biāo)準(zhǔn)協(xié)議,用于標(biāo)準(zhǔn)化?AI?模型與外部工具和數(shù)據(jù)源的集成方式,本示例將展示如何使用?Python?實(shí)現(xiàn)一個(gè)最基礎(chǔ)的?MCP?協(xié)議,包括?MCP?服務(wù)器和?MCP?客戶端兩部分,需要的朋友可以參考下2026-04-04
Numpy中的數(shù)組搜索中np.where方法詳細(xì)介紹
這篇文章主要介紹了Numpy中的數(shù)組搜索中np.where方法詳細(xì)介紹,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01

