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

Written by

in

文章目录
  • 例如:把文件名全部改为统一格式 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 的数字序号
  • 例如,删除所有 .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(“nn”) 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(“批量替换完成。”)
  • 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自动化文件处理之如何批量压缩和解压文件 Python中批量文件处理与自动化管理技巧分享 Python 文件批量处理操作的实现示例 Python办公自动化批量处理文件实现示例 python批量处理打开多个文件 python批量处理txt文件的实例代码 python3图片文件批量重命名处理 python批量处理文件或文件夹
  • 目录
    • 一、基础库介绍
      • 1. os 模块
      • 2. shutil 模块
      • 3. glob 模块
    • 二、批量重命名文件
      • 三、批量复制/移动文件
        • 1. 批量复制
        • 2. 批量移动
      • 四、批量删除文件
        • 五、批量读取文本内容并写入汇总文件
          • 六、批量修改文件内容(查找 + 替换)
            • 七、批量压缩文件(zipfile模块)
              • 八、批量处理的实战案例:自动整理下载目录
                • 九、文件批处理脚本的最佳实践
                  • 十、总结

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

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

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

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

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

                    常用方法:

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

                    执行高级文件操作:

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

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

                    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 的数字序号

                    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("复制完成。")
                    

                    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("nn")
                    
                    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("批量替换完成。")
                    

                    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自动化文件处理之如何批量压缩和解压文件
                    • Python中批量文件处理与自动化管理技巧分享
                    • Python 文件批量处理操作的实现示例
                    • Python办公自动化批量处理文件实现示例
                    • python批量处理打开多个文件
                    • python批量处理txt文件的实例代码
                    • python3图片文件批量重命名处理
                    • python批量处理文件或文件夹

                    站内搜索