头图

大家好,我是涛哥,本文内容来自 涛哥聊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初学者,可以尝试逐步实现这些自动化任务,并根据实际需求进行扩展和优化。


涛哥聊Python
59 声望37 粉丝