Python中实现文件批量处理的自动化脚本

 更新时间:2025年11月14日 08:19:47   作者:程序员爱钓鱼  
在实际开发、数据整理或办公自动化中,我们经常需要一次性处理大量文件,本章将从常见场景出发,通过示例脚本帮助你快速掌握文件批量处理能力

在实际开发、数据整理或办公自动化中,我们经常需要一次性处理大量文件,例如:

  • 批量重命名文件
  • 批量复制/移动文件
  • 批量压缩文件
  • 批量格式转换
  • 批量读取与写入文本内容

Python 的标准库中,osshutilglob 等模块可以轻松构建各种文件批处理脚本,是自动化办公与数据清洗的利器。

本章将从常见场景出发,通过示例脚本帮助你快速掌握文件批量处理能力。

一、基础库介绍

1. os 模块

提供文件路径、文件夹、新建/删除目录等操作。

常用方法:

  • os.listdir()
  • os.rename()
  • os.path.exists()
  • os.makedirs()
  • os.remove()

2. shutil 模块

执行高级文件操作:

  • 拷贝文件:shutil.copy()
  • 移动文件:shutil.move()
  • 拷贝整个文件夹:shutil.copytree()

3. glob 模块

使用通配符批量匹配文件,例如:

glob.glob("*.txt")
glob.glob("images/*.jpg")

是处理大量文件时非常方便的模块。

二、批量重命名文件

例如:把文件名全部改为统一格式 img_001.jpg、img_002.jpg

import os

folder = "images"

files = os.listdir(folder)

for i, filename in enumerate(files, start=1):
    old_path = os.path.join(folder, filename)
    ext = os.path.splitext(filename)[1]
    new_name = f"img_{i:03d}{ext}"
    new_path = os.path.join(folder, new_name)
    os.rename(old_path, new_path)

print("重命名完成。")

技术要点

  • os.path.splitext() 可获得文件扩展名
  • i:03d 生成 001、002 的数字序号

三、批量复制/移动文件

1. 批量复制

import shutil
import glob

src_files = glob.glob("data/*.txt")
dst_folder = "backup"

os.makedirs(dst_folder, exist_ok=True)

for file in src_files:
    shutil.copy(file, dst_folder)

print("复制完成。")

2. 批量移动

import shutil
import glob

for file in glob.glob("data/*.csv"):
    shutil.move(file, "csv_files")

print("移动完成。")

四、批量删除文件

例如,删除所有 .log 文件:

import os
import glob

for file in glob.glob("logs/*.log"):
    os.remove(file)

print("删除完成。")

目录删除使用 shutil.rmtree("folder")

五、批量读取文本内容并写入汇总文件

比如,你有 100 个 .txt 日志文件,需要汇总到一个文件。

import glob

files = glob.glob("logs/*.txt")

with open("summary.txt", "w", encoding="utf-8") as outfile:
    for file in files:
        with open(file, "r", encoding="utf-8") as f:
            outfile.write(f"=== 文件:{file} ===\n")
            outfile.write(f.read())
            outfile.write("\n\n")

print("汇总完成。")

六、批量修改文件内容(查找 + 替换)

在大量 .txt 文件中,将所有 "测试" 替换为 "正式"

import glob

for file in glob.glob("docs/*.txt"):
    with open(file, "r", encoding="utf-8") as f:
        text = f.read()

    text = text.replace("测试", "正式")

    with open(file, "w", encoding="utf-8") as f:
        f.write(text)

print("批量替换完成。")

七、批量压缩文件(zipfile模块)

import zipfile
import glob

files = glob.glob("data/*.csv")

with zipfile.ZipFile("data.zip", "w") as zipf:
    for file in files:
        zipf.write(file)

print("压缩完成。")

八、批量处理的实战案例:自动整理下载目录

下面给出一个实战脚本,把下载目录按文件类型分类:

import os
import shutil
import glob

download_folder = "downloads"

file_types = {
    "图片": ["*.jpg", "*.png"],
    "视频": ["*.mp4"],
    "压缩包": ["*.zip", "*.rar"],
    "文档": ["*.pdf", "*.docx", "*.txt"]
}

for folder_name, patterns in file_types.items():
    target_folder = os.path.join(download_folder, folder_name)
    os.makedirs(target_folder, exist_ok=True)

    for pattern in patterns:
        for file in glob.glob(os.path.join(download_folder, pattern)):
            shutil.move(file, target_folder)

print("下载目录已整理完毕!")

执行后,文件会自动分类到各自目录,办公效率提升非常明显。

九、文件批处理脚本的最佳实践

  • 使用 glob 匹配大量文件更快
  • 写入文件前备份原文件
  • 对文件操作加入 try/except 防止脚本崩溃
  • 复杂任务建议封装成函数或类

示例:

try:
    shutil.move(src, dst)
except Exception as e:
    print("移动失败:", e)

十、总结

本章你掌握了 Python 在文件自动化中的核心技能:

  • 批量重命名
  • 批量复制、移动、删除
  • 批量读取、写入和替换内容
  • 批量压缩
  • 使用 glob 进行文件匹配
  • 实战:自动整理下载目录

这些脚本结合日常办公场景,可以最大化提升工作效率,是每个 Python 工程师必须掌握的技能点。

到此这篇关于Python中实现文件批量处理的自动化脚本的文章就介绍到这了,更多相关Python文件批量处理脚本内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python unittest discover批量执行代码实例

    Python unittest discover批量执行代码实例

    这篇文章主要介绍了Python unittest discover批量执行代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09
  • matplotlib画图之修改坐标轴刻度问题

    matplotlib画图之修改坐标轴刻度问题

    这篇文章主要介绍了matplotlib画图之修改坐标轴刻度问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-11-11
  • 如何在VSCode下使用Jupyter的教程详解

    如何在VSCode下使用Jupyter的教程详解

    这篇文章主要介绍了如何在VSCode下使用Jupyter,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-07-07
  • python如何解析配置文件并应用到项目中

    python如何解析配置文件并应用到项目中

    这篇文章主要介绍了python如何解析配置文件并应用到项目中,如果我们更换了电脑也可以继续使用原来的文件,只要把里面的数据拷贝到游戏执行的配置文件里面就可以了,我们重新再进入就不用重新设置内挂的配置了,需要的朋友可以参考下
    2019-06-06
  • python常用函数详解

    python常用函数详解

    本文给大家总结了python中常用函数,非常的细致全面,有需要的小伙伴可以参考下
    2016-09-09
  • 优化Python代码使其加快作用域内的查找

    优化Python代码使其加快作用域内的查找

    这篇文章主要介绍了优化Python代码使其加快作用域内的搜索,文中介绍了CPython相关的C代码来对查找功能进行优化,加快搜索的速度,需要的朋友可以参考下
    2015-03-03
  • Flask框架学习笔记之消息提示与异常处理操作详解

    Flask框架学习笔记之消息提示与异常处理操作详解

    这篇文章主要介绍了Flask框架学习笔记之消息提示与异常处理操作,结合实例形式分析了flask框架表单登陆消息提示、错误模板调用及异常处理相关操作技巧,需要的朋友可以参考下
    2019-08-08
  • Python requests及aiohttp速度对比代码实例

    Python requests及aiohttp速度对比代码实例

    这篇文章主要介绍了Python requests及aiohttp速度对比代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-07-07
  • PyTorch使用tensorboard的SummaryWriter报错问题解决方案

    PyTorch使用tensorboard的SummaryWriter报错问题解决方案

    PyTorch使用tensorboard可以显示网络运行情况,但偶尔使用SummaryWriter时遇到Segmentation fault错误,这篇文章主要介绍了PyTorch使用tensorboard的SummaryWriter报错问题解决方案,需要的朋友可以参考下
    2024-06-06
  • python3.3教程之模拟百度登陆代码分享

    python3.3教程之模拟百度登陆代码分享

    因工作需要,研究了一下模拟百度的登陆,开发环境使用了python3,大家参考使用吧
    2014-01-01

最新评论