大家好,我是涛哥,本文内容来自 涛哥聊Python ,转载请标原创。
更多Python学习内容:http://ipengtao.com
Python因其简单易用和强大的功能成为了自动化任务的首选语言。在工作中,我们经常会遇到一些重复且耗时的任务,而通过Python脚本可以轻松实现自动化,提高工作效率。本文将介绍15个工作中必备的Python自动化代码示例,帮助快速上手并应用到实际工作中。
1. 文件夹和文件操作自动化
1.1 批量重命名文件
批量重命名文件是日常工作中常见的需求,特别是在处理大量文件时。
以下是一个简单的脚本示例:
import os
def batch_rename(folder_path, prefix):
for count, filename in enumerate(os.listdir(folder_path)):
dst = f"{prefix}_{str(count).zfill(3)}{os.path.splitext(filename)[1]}"
src = os.path.join(folder_path, filename)
dst = os.path.join(folder_path, dst)
os.rename(src, dst)
folder_path = '/path/to/your/folder'
prefix = 'newname'
batch_rename(folder_path, prefix)
1.2 批量移动文件
将特定类型的文件从一个文件夹移动到另一个文件夹也是常见需求。
以下是一个批量移动文件的脚本:
import shutil
import os
def move_files(source_folder, destination_folder, file_extension):
for filename in os.listdir(source_folder):
if filename.endswith(file_extension):
shutil.move(os.path.join(source_folder, filename), os.path.join(destination_folder, filename))
source_folder = '/path/to/source/folder'
destination_folder = '/path/to/destination/folder'
file_extension = '.txt'
move_files(source_folder, destination_folder, file_extension)
2. 数据处理自动化
2.1 批量处理Excel文件
利用Pandas库可以方便地处理Excel文件,以下是一个批量处理Excel文件的示例:
import pandas as pd
import os
def process_excel_files(folder_path):
for filename in os.listdir(folder_path):
if filename.endswith('.xlsx'):
file_path = os.path.join(folder_path, filename)
df = pd.read_excel(file_path)
# 进行数据处理,例如删除空值
df.dropna(inplace=True)
df.to_excel(file_path, index=False)
folder_path = '/path/to/excel/files'
process_excel_files(folder_path)
2.2 CSV文件合并
将多个CSV文件合并为一个文件,可以使用以下脚本:
import pandas as pd
import os
def merge_csv_files(folder_path, output_file):
all_files = [os.path.join(folder_path, f) for f in os.listdir(folder_path) if f.endswith('.csv')]
df_list = [pd.read_csv(file) for file in all_files]
merged_df = pd.concat(df_list, ignore_index=True)
merged_df.to_csv(output_file, index=False)
folder_path = '/path/to/csv/files'
output_file = 'merged_output.csv'
merge_csv_files(folder_path, output_file)
3. 网络操作自动化
3.1 批量下载图片
使用Python脚本批量下载图片,可以借助requests和os库:
import requests
import os
def download_images(url_list, save_folder):
if not os.path.exists(save_folder):
os.makedirs(save_folder)
for i, url in enumerate(url_list):
img_data = requests.get(url).content
with open(os.path.join(save_folder, f'image_{i}.jpg'), 'wb') as handler:
handler.write(img_data)
url_list = ['http://example.com/image1.jpg', 'http://example.com/image2.jpg']
save_folder = '/path/to/save/images'
download_images(url_list, save_folder)
3.2 批量发送邮件
通过smtplib库可以实现批量发送邮件的功能:
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
def send_emails(email_list, subject, body, from_email, from_password):
server = smtplib.SMTP('smtp.gmail.com', 587)
server.starttls()
server.login(from_email, from_password)
for to_email in email_list:
msg = MIMEMultipart()
msg['From'] = from_email
msg['To'] = to_email
msg['Subject'] = subject
msg.attach(MIMEText(body, 'plain'))
server.sendmail(from_email, to_email, msg.as_string())
server.quit()
email_list = ['recipient1@example.com', 'recipient2@example.com']
subject = 'Test Email'
body = 'This is a test email sent from Python script.'
from_email = 'your-email@gmail.com'
from_password = 'your-password'
send_emails(email_list, subject, body, from_email, from_password)
4. 数据分析自动化
4.1 数据可视化
利用Matplotlib库,可以快速生成数据可视化图表:
import matplotlib.pyplot as plt
def create_bar_chart(data, labels, title):
plt.bar(labels, data)
plt.xlabel('Categories')
plt.ylabel('Values')
plt.title(title)
plt.show()
data = [10, 20, 30, 40]
labels = ['A', 'B', 'C', 'D']
title = 'Sample Bar Chart'
create_bar_chart(data, labels, title)
4.2 数据清洗
使用Pandas库进行数据清洗的示例:
import pandas as pd
def clean_data(file_path):
df = pd.read_csv(file_path)
# 删除重复行
df.drop_duplicates(inplace=True)
# 填充缺失值
df.fillna(0, inplace=True)
return df
file_path = 'data.csv'
cleaned_df = clean_data(file_path)
print(cleaned_df)
5. 自动化测试
5.1 自动化网页测试
使用Selenium库进行网页自动化测试:
from selenium import webdriver
def test_website(url):
driver = webdriver.Chrome()
driver.get(url)
assert "Python" in driver.title
driver.quit()
url = 'http://www.python.org'
test_website(url)
5.2 自动化API测试
利用Requests库进行API测试:
import requests
def test_api(endpoint):
response = requests.get(endpoint)
assert response.status_code == 200
print('API Test Passed')
endpoint = 'https://api.example.com/data'
test_api(endpoint)
6. 任务调度自动化
6.1 使用Schedule库
Schedule库可以轻松实现任务调度:
import schedule
import time
def job():
print("Running scheduled task...")
schedule.every().day.at("10:30").do(job)
while True:
schedule.run_pending()
time.sleep(1)
6.2 使用APScheduler库
APScheduler库提供了更高级的调度功能:
from apscheduler.schedulers.blocking import BlockingScheduler
def scheduled_job():
print('This job is run every day at 9:00 AM.')
scheduler = BlockingScheduler()
scheduler.add_job(scheduled_job, 'cron', hour=9)
scheduler.start()
总结
以上介绍了15个工作中必备的Python自动化代码示例,涵盖了文件操作、数据处理、网络操作、数据分析、自动化测试和任务调度等方面。通过这些示例代码,你可以在日常工作中实现许多重复性任务的自动化,从而提高工作效率。如果你是Python初学者,可以尝试逐步实现这些自动化任务,并根据实际需求进行扩展和优化。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。