怎样批量修改文件名称

如何使用Python批量修改文件名称

文件名称在我们的日常工作中经常需要修改,特别是当我们需要对大量文件进行统一命名时。手动一个一个修改文件名称是非常耗时且无效的。而使用Python脚本可以轻松实现批量修改文件名称的功能,大大提高工作效率。本文将介绍如何使用Python实现批量修改文件名称的方法。

1. 导入所需库

首先,我们需要导入os和shutil库。其中os库用于操作文件路径和目录,shutil库用于文件操作。

import os

import shutil

2. 获取文件列表

使用os.listdir()函数可以获取指定目录下的所有文件和目录的名称列表。我们可以通过遍历该列表,筛选出需要修改名称的文件。

file_list = os.listdir("目录路径")

3. 批量修改文件名称

遍历文件列表,对每个文件进行重命名操作。根据需求,可以选择使用字符串替换、添加前缀或后缀等方式进行文件重命名。

for file_name in file_list:

 new_file_name = file_name.replace("旧名称", "新名称")

 os.rename(file_name, new_file_name)

示例:

假设我们要将指定目录下所有文件的后缀名从txt改为docx。

for file_name in file_list:

 if file_name.endswith(".txt"):

  new_file_name = file_name.replace(".txt", ".docx")

  os.rename(file_name, new_file_name)

4. 错误处理

当文件名称无法修改时,可能会抛出异常,例如文件不存在、权限不足等。为了程序的稳定性,我们需要对这些异常进行处理。

try:

 os.rename(file_name, new_file_name)

except Exception as e:

 print("修改文件名称失败:", e)

5. 完整代码示例

import os

import shutil

def batch_rename(directory, old_name, new_name):

 file_list = os.listdir(directory)

 for file_name in file_list:

  if old_name in file_name:

   new_file_name = file_name.replace(old_name, new_name)

   try:

    os.rename(os.path.join(directory, file_name), os.path.join(directory, new_file_name))

   except Exception as e:

    print("修改文件名称失败:", e)

# 使用示例

batch_rename("目录路径", "旧名称", "新名称")

通过以上步骤,我们可以使用Python编写脚本来实现批量修改文件名称的功能。在实际使用过程中,我们可以根据具体的需求进行修改和扩展,例如添加文件过滤条件、加入递归处理等。