所有文章 > 日积月累 > Python自动化:提升效率的20个实用脚本
Python自动化:提升效率的20个实用脚本

Python自动化:提升效率的20个实用脚本

在现代工作环境中,自动化已经成为提升效率、减少重复劳动的重要工具。Python作为一种功能强大且易于学习的编程语言,提供了丰富的库和工具,使得自动化任务变得更加轻松和高效。本文将介绍20个实用的Python自动化脚本,帮助您在各类任务中解放双手、事半功倍。

自动化文件管理

Python在自动化文件管理方面提供了极大的便利。通过简单的脚本,我们可以轻松地整理文件、移除空白文档以及批量重命名文件。

整理目录中的文件

在处理大量文件时,按文件类型整理文件是一项常见需求。以下是一个Python脚本示例,可以根据文件扩展名整理目录中的文件。

import os
from shutil import move

def sort_files(directory_path):
    for filename in os.listdir(directory_path):
        if os.path.isfile(os.path.join(directory_path, filename)):
            file_extension = filename.split('.')[-1]
            destination_directory = os.path.join(directory_path, file_extension)
            if not os.path.exists(destination_directory):
                os.makedirs(destination_directory)
            move(os.path.join(directory_path, filename), 
                 os.path.join(destination_directory, filename))

sort_files('your_directory_path')

该脚本遍历目录中的所有文件,并按扩展名创建相应的文件夹,将文件移动至相应的文件夹中。

文件整理示例

移除空白的文档

在自动化处理文件时,清除空白文件夹是提高目录整洁度的关键。

import os

def remove_empty_folders(directory_path):
    for root, dirs, files in os.walk(directory_path, topdown=False):
        for folder in dirs:
            folder_path = os.path.join(root, folder)
            if not os.listdir(folder_path):
                os.rmdir(folder_path)

remove_empty_folders('your_directory_path')

此脚本遍历目录树,发现空文件夹后将其删除,有助于保持文件目录的整洁。

多个文件的重命名

批量修改文件名是日常工作中常见的需求,Python可以轻松实现。

import os

def rename_files(directory_path, old_name, new_name):
    for filename in os.listdir(directory_path):
        if old_name in filename:
            new_filename = filename.replace(old_name, new_name)
            os.rename(os.path.join(directory_path, filename), 
                      os.path.join(directory_path, new_filename))

rename_files('your_directory_path', 'old_name', 'new_name')

此脚本通过替换旧名称来生成新文件名,并更新文件名。

文件重命名示例

Excel办公自动化软件

Python提供了强大的库来处理Excel文件,使得数据处理和分析变得更加简单。

读取和写入

使用Pandas库可以轻松读取和写入Excel文件。

import pandas as pd

def read_excel(file_path):
    df = pd.read_excel(file_path)
    return df

def write_to_excel(data, file_path):
    df = pd.DataFrame(data)
    df.to_excel(file_path, index=False)

read_excel('path_to_your_input_file.xlsx')
write_to_excel(data, 'path_to_your_output_file.xlsx')

此代码通过Pandas库读取Excel文件,并将数据写回新的Excel文件。

合并多个工作表

在需要合并多个Excel工作表时,该脚本可以提供帮助。

import pandas as pd

def merge_sheets(file_path, output_file_path):
    xls = pd.ExcelFile(file_path)
    df = pd.DataFrame()
    for sheet_name in xls.sheet_names:
        sheet_df = pd.read_excel(xls, sheet_name)
        df = df.append(sheet_df, ignore_index=True)
    df.to_excel(output_file_path, index=False)

merge_sheets('path_to_your_excel_file.xlsx', 'path_to_your_output_file.xlsx')

该脚本将所有工作表的数据合并到一个新的Excel文件中。

图片处理

图像处理是Python自动化的重要应用之一,通过Pillow库可以实现图片的剪裁、缩放和添加水印等操作。

图片的修剪

以下是一个示例,展示如何使用Python调整图片大小。

from PIL import Image

def resize_image(input_path, output_path, width, height):
    image = Image.open(input_path)
    resized_image = image.resize((width, height), Image.ANTIALIAS)
    resized_image.save(output_path)

resize_image('path_to_input_image.jpg', 'path_to_resized_image.jpg', 800, 600)

该函数接受输入路径、输出路径、以及新大小,调整并保存图片。

图片处理示例

添加水印

通过在图片上添加水印,可以保护版权或标识图像来源。

from PIL import Image, ImageDraw, ImageFont

def add_watermark(input_path, output_path, watermark_text):
    image = Image.open(input_path)
    draw = ImageDraw.Draw(image)
    font = ImageFont.truetype('arial.ttf', 36)
    draw.text((10, 10), watermark_text, fill=(255, 255, 255, 128), font=font)
    image.save(output_path)

add_watermark('path_to_input_image.jpg', 'path_to_watermarked_image.jpg', 'Your Watermark Text')

此函数在图片上添加指定文本的水印,并保存修改后的图片。

系统任务

Python可以管理系统进程、自动化任务等,提高系统操作效率。

系统进程管理

使用psutil库,可以获取系统进程信息并管理进程。

import psutil

def get_running_processes():
    return [p.info for p in psutil.process_iter(['pid', 'name', 'username'])]

def kill_process_by_name(process_name):
    for p in psutil.process_iter(['pid', 'name', 'username']):
        if p.info['name'] == process_name:
            p.kill()

running_processes = get_running_processes()

此代码列出所有正在运行的进程,并支持通过名称终止指定进程。

系统任务示例

PDF文件操作

Python可以通过PyPDF2库轻松实现PDF文件的合并和加密。

多个PDF文件合并

合并多个PDF文件是日常办公中常见的操作。

import PyPDF2

def merge_pdfs(input_paths, output_path):
    pdf_merger = PyPDF2.PdfMerger()
    for path in input_paths:
        with open(path, 'rb') as f:
            pdf_merger.append(f)
    with open(output_path, 'wb') as f:
        pdf_merger.write(f)

merge_pdfs(['pdf1.pdf', 'pdf2.pdf', 'pdf3.pdf'], 'merged.pdf')

此脚本将多个PDF文件合并为一个文件,便于整理和管理。

PDF文件密码保护

对于敏感文件,添加密码保护十分重要。

import PyPDF2

def add_password_protection(input_path, output_path, password):
    with open(input_path, 'rb') as f:
        pdf_reader = PyPDF2.PdfFileReader(f)
        pdf_writer = PyPDF2.PdfFileWriter()
        for page_num in range(pdf_reader.numPages):
            page = pdf_reader.getPage(page_num)
            pdf_writer.addPage(page)
        pdf_writer.encrypt(password)
        with open(output_path, 'wb') as output_file:
            pdf_writer.write(output_file)

add_password_protection('input.pdf', 'protected.pdf', 'your_password')

该脚本为PDF文件设置密码,保护文件内容。

PDF操作示例

FAQ

  1. 问:如何使用Python自动化文件整理?

    • 答:通过Python的os和shutil库,可以编写脚本按文件类型整理目录中的文件,如按扩展名分类。
  2. 问:如何在Python中处理Excel文件?

    • 答:可以使用Pandas库读取和写入Excel文件,实现数据的加工与合并等操作。
  3. 问:如何为PDF文件添加密码保护?

    • 答:使用PyPDF2库,可以为PDF文件设置访问密码,确保文件安全。
  4. 问:Python是否能批量处理图片?

    • 答:是的,Python的Pillow库可以用来调整图片大小、添加水印等批量图片处理操作。
  5. 问:如何管理系统进程?

    • 答:使用psutil库可以获取系统进程信息,并支持通过名称终止指定进程。
#你可能也喜欢这些API文章!