
最新動(dòng)態(tài)
Python腳本大師:自動(dòng)化處理重復(fù)任務(wù),提高工作效率
2025-01-27今天聊聊如何利用Python腳本簡(jiǎn)化日常重復(fù)工作
說(shuō)實(shí)話,我最討厭的就是每天都要重復(fù)做同樣的事情,這不僅浪費(fèi)時(shí)間,還讓人感到厭倦。自從學(xué)會(huì)了用Python編寫腳本后,感覺(jué)整個(gè)人都解放了!下面分享幾個(gè)實(shí)用的小技巧,相信會(huì)讓你的工作效率大大提高。
批量重命名文件
是否遇到過(guò)需要批量更改文件名的情況?比如下載了一大堆照片,想要按照日期重新命名。手動(dòng)修改?那簡(jiǎn)直是噩夢(mèng)。用Python腳本幾秒鐘就能搞定:
import os from datetime import datetime # 指定目錄路徑 directory = "C:/Users/YourName/Pictures" for filename in os.listdir(directory): if filename.endswith(".jpg"): # 只處理jpg文件 file_path = os.path.join(directory, filename) # 獲取文件修改時(shí)間 mod_time = os.path.getmtime(file_path) # 轉(zhuǎn)換為日期時(shí)間格式 date = datetime.fromtimestamp(mod_time).strftime('%Y%m%d') # 新文件名 new_name = f"{date}_{filename}" # 重命名 os.rename(file_path, os.path.join(directory, new_name)) print("搞定!所有文件已重命名。")
這段代碼會(huì)遍歷指定目錄下的所有jpg文件,然后根據(jù)文件的修改時(shí)間給它們加上日期前綴。比如“IMG001.jpg”就變成了“20230611_IMG001.jpg”。提醒一下,在運(yùn)行這種批量操作的腳本前,最好先備份一下原始文件,以防萬(wàn)一出錯(cuò)還能恢復(fù)。
自動(dòng)化Excel數(shù)據(jù)處理
處理Excel中的數(shù)據(jù)是最煩人的任務(wù)之一,尤其是當(dāng)需要處理多個(gè)表格時(shí)。使用Python的openpyxl
庫(kù)可以輕松搞定:
from openpyxl import load_workbook, Workbook # 打開源Excel文件 wb = load_workbook("source.xlsx") sheet = wb.active # 創(chuàng)建新的Excel文件 new_wb = Workbook() new_sheet = new_wb.active # 處理數(shù)據(jù) for row in sheet.iter_rows(min_row=2, values_only=True): name, sales = row[0], row[1] if sales > 1000: # 假設(shè)我們只關(guān)心銷售額超過(guò)1000的 new_sheet.append([name, sales]) # 保存新文件 new_wb.save("processed_data.xlsx") print("Excel處理完成,結(jié)果已保存到新文件中。")
這個(gè)腳本會(huì)讀取一個(gè)Excel文件,篩選出銷售額超過(guò)1000的記錄,然后把結(jié)果保存到一個(gè)新的Excel文件中。再也不用手動(dòng)篩選數(shù)據(jù)了,簡(jiǎn)直太爽了!
定時(shí)任務(wù)自動(dòng)化
有些工作需要定期執(zhí)行,比如每天下午5點(diǎn)發(fā)送一份工作報(bào)告。與其靠自己記,不如寫個(gè)腳本讓電腦幫你盯著:
import schedule import time import smtplib from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart def send_report(): # 這里是發(fā)送郵件的代碼 sender = "your_email@example.com" receiver = "boss@example.com" msg = MIMEMultipart() msg['From'] = sender msg['To'] = receiver msg['Subject'] = "每日工作報(bào)告" body = "這是今天的工作報(bào)告內(nèi)容。\n1. 完成了A項(xiàng)目\n2. 開始著手B項(xiàng)目\n3. 解決了C問(wèn)題" msg.attach(MIMEText(body, 'plain')) try: server = smtplib.SMTP('smtp.gmail.com', 587) server.starttls() server.login(sender, "your_password") text = msg.as_string() server.sendmail(sender, receiver, text) server.quit() print("郵件發(fā)送成功!") except Exception as e: print(f"郵件發(fā)送失?。簕e}") # 設(shè)置每天下午5點(diǎn)執(zhí)行 schedule.every().day.at("17:00").do(send_report) while True: schedule.run_pending() time.sleep(60) # 每分鐘檢查一次是否有待執(zhí)行的任務(wù)
這個(gè)腳本設(shè)置了一個(gè)定時(shí)任務(wù),每天下午5點(diǎn)自動(dòng)發(fā)送一封郵件。你只需要把它放在后臺(tái)運(yùn)行,就再也不用擔(dān)心忘記發(fā)報(bào)告了。
溫馨提示:使用Gmail的SMTP服務(wù)器時(shí),可能需要在Google賬戶設(shè)置中啟用“不太安全的應(yīng)用訪問(wèn)”?;蛘吒玫姆椒ㄊ鞘褂脩?yīng)用專用密碼。
網(wǎng)絡(luò)數(shù)據(jù)抓取
有時(shí)候我們需要從網(wǎng)站上收集一些數(shù)據(jù),比如監(jiān)控競(jìng)爭(zhēng)對(duì)手的價(jià)格變化。手動(dòng)復(fù)制粘貼?太落后了!來(lái)看看怎么用Python的requests
和beautifulsoup
庫(kù)來(lái)自動(dòng)抓取網(wǎng)頁(yè)數(shù)據(jù):
import requests from bs4 import BeautifulSoup import csv url = "https://example.com/products" response = requests.get(url) soup = BeautifulSoup(response.text, 'html.parser') products = [] for item in soup.find_all('div', class_='product'): name = item.find('h2').text.strip() price = item.find('span', class_='price').text.strip() products.append([name, price]) # 保存到CSV文件 with open('products.csv', 'w', newline='', encoding='utf-8') as f: writer = csv.writer(f) writer.writerow(['Product Name', 'Price']) writer.writerows(products) print(f"成功抓取了{(lán)len(products)}個(gè)產(chǎn)品信息,并保存到了products.csv文件中。")
這個(gè)腳本會(huì)訪問(wèn)指定的網(wǎng)頁(yè),解析HTML內(nèi)容,提取產(chǎn)品名稱和價(jià)格信息,然后把結(jié)果保存到一個(gè)CSV文件中。你可以根據(jù)具體網(wǎng)站的HTML結(jié)構(gòu)來(lái)調(diào)整解析邏輯。
好了,今天就聊到這兒吧。這些小技巧都是我平時(shí)工作中經(jīng)常用到的,希望對(duì)你也有幫助。記住,編程的關(guān)鍵就是解決實(shí)際問(wèn)題。多練習(xí),多思考如何用代碼來(lái)簡(jiǎn)化你的日常工作,你會(huì)發(fā)現(xiàn)編程其實(shí)挺有趣的。哦對(duì)了,代碼里難免會(huì)有些bug,別灰心,調(diào)試也是提高編程技巧的好方法。加油!