Python 批量重命名文件工具(完整示例)

目录

  1. 引言
  2. 环境准备
  3. 基本概念
  4. 使用Python进行批量重命名
  5. 实用场景
  6. 总结

引言

在日常工作中,我们经常需要对大量文件进行重命名操作。手动重命名文件不仅耗时费力,而且容易出错。因此,使用Python编写一个批量重命名文件的工具显得尤为重要。本文将详细介绍如何使用Python实现这一功能,并提供多个实际案例和场景,以帮助您更好地理解和应用。

环境准备

在开始之前,请确保您的计算机上安装了Python 3.x版本。您可以从Python官网下载并安装最新版本。此外,我们将使用osdatetime模块来处理文件和时间。

bashCopy Code
pip install os pip install datetime

基本概念

在编写批量重命名工具之前,我们需要了解一些基本概念。

  • 文件路径:文件在计算机中的位置。我们可以使用绝对路径或相对路径来指定。
  • 文件扩展名:文件名末尾的部分,用于指示文件类型(如.txt, .jpg)。
  • 正则表达式:用于匹配字符串的强大工具,可以用来处理复杂的文件名模式。

使用Python进行批量重命名

接下来,我们将通过几个示例来展示如何使用Python进行批量重命名。

示例1:简单的文件重命名

在这个示例中,我们将演示如何将特定文件夹中的所有文件重命名为统一格式,例如将所有文件重命名为file_1.txt, file_2.txt, 等等。

pythonCopy Code
import os def rename_files_in_directory(directory): # 获取目录中的所有文件 files = os.listdir(directory) for index, filename in enumerate(files): # 获取文件扩展名 file_extension = os.path.splitext(filename)[1] # 新文件名 new_name = f'file_{index + 1}{file_extension}' # 构造完整的源文件路径和目标文件路径 src = os.path.join(directory, filename) dst = os.path.join(directory, new_name) # 重命名文件 os.rename(src, dst) print(f'Renamed: {src} to {dst}') # 使用示例 directory = '/path/to/your/directory' rename_files_in_directory(directory)

示例2:根据文件类型重命名

在这个示例中,我们将根据文件类型(扩展名)来重命名文件。例如,将所有的.jpg文件重命名为image_1.jpg, image_2.jpg,将所有的.txt文件重命名为document_1.txt, document_2.txt

pythonCopy Code
import os def rename_files_by_type(directory): # 创建类别字典 file_types = {} # 获取目录中的所有文件 files = os.listdir(directory) for filename in files: file_extension = os.path.splitext(filename)[1] if file_extension not in file_types: file_types[file_extension] = 1 else: file_types[file_extension] += 1 # 新文件名 new_name = f'{file_extension[1:]}_{file_types[file_extension]}{file_extension}' # 构造完整的源文件路径和目标文件路径 src = os.path.join(directory, filename) dst = os.path.join(directory, new_name) # 重命名文件 os.rename(src, dst) print(f'Renamed: {src} to {dst}') # 使用示例 directory = '/path/to/your/directory' rename_files_by_type(directory)

示例3:给文件添加前缀或后缀

在这个示例中,我们将给所有文件添加一个前缀或后缀,例如给所有文件添加“new_”作为前缀。

pythonCopy Code
import os def add_prefix_to_files(directory, prefix): # 获取目录中的所有文件 files = os.listdir(directory) for filename in files: # 构造新文件名 new_name = f'{prefix}{filename}' # 构造完整的源文件路径和目标文件路径 src = os.path.join(directory, filename) dst = os.path.join(directory, new_name) # 重命名文件 os.rename(src, dst) print(f'Renamed: {src} to {dst}') # 使用示例 directory = '/path/to/your/directory' add_prefix_to_files(directory, 'new_')

示例4:按日期重命名文件

在这个示例中,我们将根据文件的修改日期来重命名文件。例如,将文件重命名为2026-03-30_file.txt

pythonCopy Code
import os import time def rename_files_by_date(directory): # 获取目录中的所有文件 files = os.listdir(directory) for filename in files: file_path = os.path.join(directory, filename) # 获取文件的最后修改时间 timestamp = os.path.getmtime(file_path) # 格式化为日期 date_str = time.strftime('%Y-%m-%d', time.localtime(timestamp)) # 构造新文件名 new_name = f'{date_str}_{filename}' # 构造完整的目标文件路径 dst = os.path.join(directory, new_name) # 重命名文件 os.rename(file_path, dst) print(f'Renamed: {file_path} to {dst}') # 使用示例 directory = '/path/to/your/directory' rename_files_by_date(directory)

实用场景

  1. 整理照片库:假设您有一个包含成千上万张照片的文件夹,您希望根据拍摄日期对这些照片进行重命名,以便更好地管理和查找。

  2. 项目文件管理:在软件开发或文档管理中,您可能会有多个版本的文件,通过批量重命名,有助于标识版本号或状态。

  3. 下载文件清理:当您从网络下载文件时,文件名通常是随机生成的,使用批量重命名可以将其整理为更易识别的格式。

  4. 备份文件:在备份过程中,可能需要为文件添加时间戳或其他标识符,以便于区分不同时间点的备份版本。

总结

本文介绍了如何使用Python进行批量重命名文件的工具,包括多个示例和实际场景。通过这些示例,您可以根据自己的需求进行修改和扩展,实现个性化的文件管理。希望这些内容能够帮助您更高效地管理文件,提高工作效率。如果您有任何问题或建议,请随时与我联系!