Python自動化處理日常任務的示例代碼
1. 自動化文件管理
1.1 批量重命名文件
假設你有一批文件,文件名需要按一定規(guī)則批量修改,可以使用 os 和 re 庫來實現(xiàn)。
import os
import re
# 設置目錄路徑
directory = 'C:/path/to/your/files'
# 獲取文件列表
files = os.listdir(directory)
# 批量重命名文件
for filename in files:
new_name = re.sub(r'old_pattern', 'new_pattern', filename) # 替換文件名中的內(nèi)容
os.rename(os.path.join(directory, filename), os.path.join(directory, new_name))
print("文件重命名完成!")
1.2 自動分類文件
根據(jù)文件擴展名自動將文件分類到不同的文件夾中。
import os
import shutil
# 設置目錄路徑
directory = 'C:/path/to/your/files'
# 獲取文件列表
files = os.listdir(directory)
# 定義文件分類規(guī)則
file_types = {
'images': ['.jpg', '.jpeg', '.png', '.gif'],
'documents': ['.pdf', '.txt', '.docx'],
'audio': ['.mp3', '.wav']
}
# 創(chuàng)建文件夾(如果不存在)
for folder in file_types:
if not os.path.exists(os.path.join(directory, folder)):
os.makedirs(os.path.join(directory, folder))
# 移動文件
for filename in files:
file_path = os.path.join(directory, filename)
if os.path.isfile(file_path):
moved = False
for folder, extensions in file_types.items():
if any(filename.endswith(ext) for ext in extensions):
shutil.move(file_path, os.path.join(directory, folder, filename))
moved = True
break
if not moved:
print(f"文件 {filename} 沒有分類!")
print("文件分類完成!")2. 自動化定時任務
2.1 使用 schedule 庫定時執(zhí)行任務
schedule 是一個 Python 庫,專門用于調(diào)度定時任務。你可以使用它來設置定時執(zhí)行的任務。
import schedule
import time
# 定義要執(zhí)行的任務
def job():
print("任務開始執(zhí)行!")
# 每隔 10 秒執(zhí)行一次任務
schedule.every(10).seconds.do(job)
# 持續(xù)運行任務
while True:
schedule.run_pending()
time.sleep(1)
2.2 使用 APScheduler 執(zhí)行復雜定時任務
APScheduler 是一個功能更強大的調(diào)度任務庫,支持多種調(diào)度方式。
from apscheduler.schedulers.blocking import BlockingScheduler
import datetime
# 定義要執(zhí)行的任務
def print_time():
print(f"當前時間:{datetime.datetime.now()}")
# 創(chuàng)建調(diào)度器
scheduler = BlockingScheduler()
# 添加任務,定時每分鐘執(zhí)行
scheduler.add_job(print_time, 'interval', minutes=1)
# 啟動調(diào)度器
scheduler.start()
3. 自動化發(fā)送郵件
使用 smtplib 庫,可以自動化發(fā)送郵件,比如定時向客戶或團隊成員發(fā)送報告。
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
def send_email(subject, body, to_email):
from_email = "your_email@gmail.com"
password = "your_password"
# 設置郵件內(nèi)容
msg = MIMEMultipart()
msg['From'] = from_email
msg['To'] = to_email
msg['Subject'] = subject
msg.attach(MIMEText(body, 'plain'))
# 發(fā)送郵件
try:
server = smtplib.SMTP('smtp.gmail.com', 587)
server.starttls()
server.login(from_email, password)
text = msg.as_string()
server.sendmail(from_email, to_email, text)
server.quit()
print("郵件發(fā)送成功!")
except Exception as e:
print(f"郵件發(fā)送失?。簕e}")
# 調(diào)用函數(shù)發(fā)送郵件
send_email("自動化報告", "這是自動化發(fā)送的郵件內(nèi)容", "recipient_email@example.com")4. 自動化網(wǎng)絡爬蟲
使用 requests 和 BeautifulSoup 庫,可以自動化爬取網(wǎng)頁內(nèi)容,并將其存儲到文件中。
import requests
from bs4 import BeautifulSoup
# 定義爬取目標網(wǎng)址
url = "https://example.com"
# 發(fā)送 HTTP 請求獲取網(wǎng)頁內(nèi)容
response = requests.get(url)
# 解析網(wǎng)頁內(nèi)容
soup = BeautifulSoup(response.text, 'html.parser')
# 獲取頁面標題
title = soup.title.string
# 打印標題
print(f"網(wǎng)頁標題: {title}")5. 自動化數(shù)據(jù)處理
5.1 使用 Pandas 庫處理數(shù)據(jù)
如果你經(jīng)常需要處理 CSV 文件或 Excel 文件,可以使用 Pandas 庫來實現(xiàn)數(shù)據(jù)的讀取、處理和導出。
import pandas as pd
# 讀取 CSV 文件
df = pd.read_csv('data.csv')
# 進行數(shù)據(jù)處理(例如:篩選大于 100 的值)
df_filtered = df[df['column_name'] > 100]
# 保存處理后的數(shù)據(jù)到新的 CSV 文件
df_filtered.to_csv('filtered_data.csv', index=False)
print("數(shù)據(jù)處理完成!")
5.2 定時備份數(shù)據(jù)庫
可以通過 Python 腳本定時備份數(shù)據(jù)庫,減少人工干預。
import mysql.connector
import datetime
import os
def backup_database():
# 數(shù)據(jù)庫連接配置
db = mysql.connector.connect(
host="localhost",
user="your_user",
password="your_password",
database="your_database"
)
# 創(chuàng)建備份文件名
backup_filename = f"backup_{datetime.datetime.now().strftime('%Y%m%d_%H%M%S')}.sql"
# 使用 mysqldump 進行備份
os.system(f"mysqldump -u your_user -p'your_password' your_database > {backup_filename}")
print(f"數(shù)據(jù)庫備份完成!備份文件: {backup_filename}")
# 定時備份
backup_database()6. 自動化圖像處理
如果你需要自動處理圖像文件(例如,批量調(diào)整大小、轉(zhuǎn)換格式等),可以使用 Pillow 庫。
from PIL import Image
import os
# 設置圖像目錄
image_directory = 'C:/path/to/your/images'
# 獲取所有圖像文件
files = os.listdir(image_directory)
# 批量調(diào)整圖像大小
for filename in files:
if filename.endswith('.jpg'):
image_path = os.path.join(image_directory, filename)
with Image.open(image_path) as img:
img = img.resize((800, 600)) # 調(diào)整大小為 800x600
img.save(os.path.join(image_directory, f"resized_{filename}"))
print("圖像處理完成!")7. 自動化 Web 操作
如果你需要自動化與網(wǎng)頁的交互,可以使用 Selenium 來模擬瀏覽器操作。
from selenium import webdriver
# 設置 WebDriver
driver = webdriver.Chrome(executable_path="path/to/chromedriver")
# 打開網(wǎng)頁
driver.get("https://example.com")
# 查找并點擊一個按鈕
button = driver.find_element_by_xpath("http://button[@id='submit']")
button.click()
# 獲取網(wǎng)頁內(nèi)容
page_content = driver.page_source
print(page_content)
# 關閉瀏覽器
driver.quit()總結(jié)
使用 Python 自動化日常任務可以極大地提高效率并減少重復性工作。通過 Python 中的各種庫(如 os、shutil、schedule、smtplib、requests、pandas、Pillow 等),你可以輕松實現(xiàn)文件管理、定時任務、郵件發(fā)送、網(wǎng)頁爬取、數(shù)據(jù)處理等多種自動化任務。
到此這篇關于Python自動化處理日常任務的示例代碼的文章就介紹到這了,更多相關Python自動化處理內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
python json load json 數(shù)據(jù)后出現(xiàn)亂序的解決方案
今天小編就為大家分享一篇python json load json 數(shù)據(jù)后出現(xiàn)亂序的解決方案,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-02-02
在echarts中圖例legend和坐標系grid實現(xiàn)左右布局實例
這篇文章主要介紹了在echarts中圖例legend和坐標系grid實現(xiàn)左右布局實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-05-05
tensorflow實現(xiàn)打印ckpt模型保存下的變量名稱及變量值
今天小編就為大家分享一篇tensorflow實現(xiàn)打印ckpt模型保存下的變量名稱及變量值,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-01-01
python使用matplotlib定制繪圖的線型、標記類型
這篇文章主要給大家詳細介紹了python使用matplotlib定制繪圖的線型、標記類型,文中有詳細的代碼示例,具有一定的參考價值,需要的朋友可以參考下2023-07-07
Python模塊結(jié)構(gòu)與布局操作方法實例分析
這篇文章主要介紹了Python模塊結(jié)構(gòu)與布局操作方法,結(jié)合實例形式分析了Python模塊與布局的相關概念、使用方法與相關注意事項,需要的朋友可以參考下2017-07-07
Python pyecharts Line折線圖的具體實現(xiàn)
折線圖在很多圖標中都有使用,本文主要介紹了Python pyecharts Line折線圖的具體實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2022-05-05

