Python十個常用的自動化腳本
在快節奏的數字化時代,自動化已經成為提升效率的關鍵詞。Python,以其簡潔的語法和豐富的庫支持,成為編寫自動化腳本的首選語言。今天,我們將探索10個實用的Python自動化腳本,它們能夠簡化日常工作、提升生活品質,讓你在日常任務中更加游刃有余。
1. 文件批量重命名
面對一堆雜亂無章的文件名,手動更改費時費力。以下腳本可以批量將文件名中的特定字符替換或增加前綴后綴。
import os
def batch_rename(directory, find_str, replace_str, prefix=''):
for filename in os.listdir(directory):
if find_str in filename:
new_filename = filename.replace(find_str, replace_str)
new_filename = prefix + new_filename if prefix else new_filename
os.rename(os.path.join(directory, filename), os.path.join(directory, new_filename))
# 示例用法
batch_rename('/path/to/your/directory', 'old_', 'new_', 'updated_')
2. 網頁內容抓取
自動抓取網頁信息,如新聞標題、天氣預報等,是信息收集的有力工具。
import requests
from bs4 import BeautifulSoup
url = 'https://www.example.com/news'
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
for title in soup.find_all('h2', class_='news-title'):
print(title.text.strip())
3. 定時發送郵件提醒
安排會議、生日祝福或日常提醒,通過郵件自動發送。
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
import schedule
import time
def send_email():
sender_email = "your_email@example.com"
receiver_email = "receiver@example.com"
password = input("Type your password and press enter: ")
message = MIMEMultipart("alternative")
message["Subject"] = "Daily Reminder"
message["From"] = sender_email
message["To"] = receiver_email
text = """\
Hi,
This is your daily reminder!
"""
part = MIMEText(text, "plain")
message.attach(part)
server = smtplib.SMTP_SSL('smtp.gmail.com', 465)
server.login(sender_email, password)
server.sendmail(sender_email, receiver_email, message.as_string())
server.quit()
schedule.every().day.at("10:30").do(send_email)
while True:
schedule.run_pending()
time.sleep(1)
4. 數據備份腳本
定期備份重要文件,保護數據安全。
import shutil
import datetime
source_folder = '/path/to/source'
backup_folder = f'/path/to/backup/{datetime.datetime.now().strftime("%Y-%m-%d_%H-%M-%S")}'
shutil.copytree(source_folder, backup_folder)
print(f"Backup completed at {backup_folder}")
5. 社交媒體監控
監控社交媒體上的關鍵詞提及,例如微博、Twitter等。
import tweepy
# 需要先在Twitter開發者賬戶獲取API密鑰
consumer_key = 'your_consumer_key'
consumer_secret = 'your_consumer_secret'
access_token = 'your_access_token'
access_token_secret = 'your_access_token_secret'
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
api = tweepy.API(auth)
search_query = '#Python'
tweets = api.search(q=search_query,, count=10)
for tweet in tweets:
print(tweet.user.name, tweet.text)
6. PDF文件合并
將多個PDF文件合并成一個文檔。
from PyPDF2 import PdfMerger
pdf_files = ['/path/to/file1.pdf', '/path/to/file2.pdf']
merger = PdfMerger()
for pdf_file in pdf_files:
merger.append(pdf_file)
merger.write('/path/to/output.pdf')
merger.close()
print("PDFs merged successfully.")
7. 自動化表格處理
使用pandas處理CSV或Excel文件,自動化數據清洗和分析。
import pandas as pd
df = pd.read_csv('data.csv')
# 數據清洗示例:去除空值
df.dropna(inplace=True)
# 數據分析示例:計算平均值
average_score = df['Score'].mean()
print(f"Average Score: {average_score}")
8. 圖片批量壓縮
自動調整圖片大小,節省存儲空間。
from PIL import Image
def compress_image(image_path, output_path, quality=90):
img = Image.open(image_path)
img.save(output_path, optimize=True, quality=quality)
images_folder = '/path/to/images'
for filename in os.listdir(images_folder):
if filename.endswith('.jpg') or filename.endswith('.png'):
img_path = os.path.join(images_folder, filename)
output_path = os.path.join(images_folder, f"compressed_{filename}")
compress_image(img_path, output_path)
print("Images compressed.")
9. 網絡狀態監測
定期檢查網絡連接狀況,確保在線服務穩定。
import urllib.request
import time
def check_internet():
try:
urllib.request.urlopen("http://www.google.com", timeout=5)
print("Internet is connected.")
except urllib.error.URLError:
print("No internet connection.")
while True:
check_internet()
time.sleep(60) # 每分鐘檢查一次
10. 系統資源監控
監控CPU和內存使用情況,預防系統過載。
import psutil
def monitor_resources():
cpu_percent = psutil.cpu_percent(interval=1)
memory_info = psutil.virtual_memory()
print(f"CPU Usage: {cpu_percent}%")
print(f"Memory Usage: {memory_info.percent}%")
while True:
monitor_resources()
time.sleep(5) # 每5秒檢查一次
總結
以上腳本涵蓋了日常辦公、數據分析、系統維護等多個領域的自動化需求,展現了Python在提升工作效率和生活質量方面的巨大潛力。希望這些建議能夠激發你的靈感,讓你的日常生活更加智能化和高效。實踐是檢驗真理的唯一標準,不妨從現在開始,根據自己的需求定制專屬的自動化解決方案吧!