最新動(dòng)態(tài)

Python自動(dòng)化辦公的15個(gè)高效腳本,助你工作效率翻倍!

2024-12-18

Python自動(dòng)化辦公的15個(gè)實(shí)用腳本,讓你效率翻倍!

辦公室里那些重復(fù)的工作真的讓人頭疼!要是能用Python來解決這些問題就好了。經(jīng)過一番研究,我整理出了15個(gè)非常有用的Python腳本,確保能夠幫助你在工作中提高效率。

批量重命名文件

你是否遇到過需要更改數(shù)百個(gè)文件名的情況?手動(dòng)更改太麻煩了。使用Python編寫一個(gè)小腳本,幾分鐘就能搞定:

1import os
2
3def batch_rename(path, old_str, new_str):
4    files = os.listdir(path)
5    for file in files:
6        if old_str in file:
7            new_name = file.replace(old_str, new_str)
8            os.rename(os.path.join(path, file), os.path.join(path, new_name))

????提示:記得先備份文件,萬一改錯(cuò)了還能恢復(fù)。

Excel數(shù)據(jù)批量處理

處理Excel數(shù)據(jù)最麻煩的是要處理多個(gè)文件。pandas庫簡(jiǎn)直是神器:

1import pandas as pd
2
3def merge_excel(folder_path, output_file):
4    all_data = pd.DataFrame()
5    for file in os.listdir(folder_path):
6        if file.endswith(.xlsx):
7            df = pd.read_excel(os.path.join(folder_path, file))
8            all_data = pd.concat([all_data, df])
9    all_data.to_excel(output_file, index=False)

PDF文件合并

開會(huì)要用的資料分散在幾個(gè)PDF文件中?這個(gè)腳本幫你合并成一個(gè):

1from PyPDF2 import PdfMerger
2
3def merge_pdfs(pdf_list, output_file)
4    merger = PdfMerger()
5    for pdf in pdf_list:
6        merger.append(pdf)
7    merger.write(output_file)
8    merger.close()

自動(dòng)發(fā)送郵件

每天都要發(fā)送類似的郵件?用這個(gè)腳本一鍵發(fā)送:

1import smtplib
2from email.mime.text import MIMEText
3
4def send_email(sender, password, receiver, subject, content):
5    msg = MIMEText(content)
6    msg[Subject] = subject
7    msg[From] = sender
8    msg[To] = receiver
9
10    with smtplib.SMTP_SSL(smtp.gmail.com, 465as smtp:
11        smtp.login(sender, password)
12        smtp.send_message(msg)

定時(shí)任務(wù)執(zhí)行

有些工作需要定時(shí)完成?schedule庫來幫你搞定:

1import schedule
2import time
3
4def job():
5    print(“執(zhí)行定時(shí)任務(wù)...”)
6
7schedule.every().day.at(“10:00”).do(job)
8
9while True
10    schedule.run_pending()
11    time.sleep(1)

圖片批量壓縮

幻燈片里的圖片太大無法發(fā)送?批量壓縮它們:

1from PIL import Image
2
3def compress_images(input_path, output_path, quality=80)
4    img = Image.open(input_path)
5    img.save(output_path, quality=quality, optimize=True)

網(wǎng)頁數(shù)據(jù)爬取

需要從網(wǎng)站上抓取數(shù)據(jù)?requests庫來幫忙:

1import requests
2from bs4 import BeautifulSoup
3
4def get_web_data(url):
5    response = requests.get(url)
6    soup = BeautifulSoup(response.text, html.parser)
7    return soup.get_text()

Word文檔處理

需要批量修改Word文檔?python-docx庫很給力:

1from docx import Document
2
3def process_word(file_path)
4    doc = Document(file_path)
5    for para in doc.paragraphs:
6        # 在這里處理段落
7        pass
8    doc.save(new_ + file_path)

自動(dòng)填寫表格

每天都要填寫同樣的表格?這個(gè)腳本能幫你解放雙手:

1import openpyxl
2
3def fill_form(template_path, data_dict):
4    wb 
= openpyxl.load_workbook(template_path)
5    sheet = wb.active
6    for cell, value in data_dict.items():
7        sheet[cell] = value
8    wb.save(filled_ + template_path)

文件監(jiān)控

需要監(jiān)控文件夾的變化?watchdog庫來幫忙:

1from watchdog.observers import Observer
2from watchdog.events import FileSystemEventHandler
3
4class MyHandler(FileSystemEventHandler):
5    def on_modified(self, event):
6        print(f文件被修改啦: {event.src_path})

自動(dòng)備份

擔(dān)心文件丟失?寫個(gè)自動(dòng)備份腳本:

1import shutil
2import datetime
3
4def backup_files(source, dest)
5    date 
= datetime.datetime.now().strftime(%Y%m%d)
6    shutil.copytree(source, f{dest}/backup_{date})

日志分析

日志文件太多看不過來?用Python幫你分析:

1def analyze_log(log_file):
2    with open(log_file, r) as f:
3        logs = f.readlines()
4        errors = [log for log in logs if ERROR in log]
5        return len(errors)

CSV數(shù)據(jù)處理

CSV文件處理也是小菜一碟:

1import csv
2
3def process_csv(file_path)
4    with open(file_path, r) as f:
5        reader = csv.DictReader(f)
6        for row in reader:
7            # 處理每一行數(shù)據(jù)
8            pass

自動(dòng)截圖

需要自動(dòng)截圖?pyautogui幫你搞定:

1import pyautogui
2
3def take_screenshot(filename)
4    screenshot = pyautogui.screenshot()
5    screenshot.save(filename)

GUI自動(dòng)化

重復(fù)的點(diǎn)擊操作?讓程序幫你點(diǎn):

1import pyautogui
2
3def click_button(x, y)
4    pyautogui.moveTo(x, y)
5    pyautogui.click()

????提示:使用這些腳本時(shí)記得測(cè)試一下,避免弄丟重要文件。還有,涉及密碼的代碼要加密存儲(chǔ),不要直接寫在腳本里。

這些腳本都是我在實(shí)際工作中使用的,確實(shí)節(jié)省了很多時(shí)間。代碼并不難,復(fù)制粘貼稍作修改就能用。遇到報(bào)錯(cuò)也不要慌,通常是因?yàn)槿鄙傧鄳?yīng)的庫,用pip install安裝一下就好。

如果你需要更多的自動(dòng)化想法,可以查閱Python的自動(dòng)化庫,比如 pyautogui 、 selenium 等,里面有很多有趣的功能。

寫代碼最重要的是解決問題,這些腳本都是為了實(shí)際問題而設(shè)計(jì)的,用起來特別順手!




點(diǎn)點(diǎn)贊

點(diǎn)分享

點(diǎn)在看