引言
在日常工作中,我们经常会遇到需要批量修改文件名称的情况。手动操作不仅费时费力,而且容易出错。幸运的是,Python 提供了强大的文件操作功能,可以帮助我们轻松实现这一任务。本文将详细介绍如何使用 Python 批量修改文件夹中文件的名称,并提供具体的核心代码和实现步骤。
实现思路
- 导入必要的库:我们需要使用
os
库来操作文件和目录。 - 获取文件列表:通过
os.listdir()
函数获取指定文件夹中的所有文件。 - 遍历文件列表:使用
for
循环遍历文件列表,并生成新的文件名。 - 重命名文件:使用
os.rename()
函数将旧文件名修改为新文件名。
核心代码
以下是实现批量修改文件名称的核心代码:
import os
def rename_files(folder_path, prefix, start_num=1):
"""
批量重命名文件夹中的文件
:param folder_path: 文件夹路径
:param prefix: 新文件名前缀
:param start_num: 起始编号
"""
# 获取文件夹中的所有文件
files = os.listdir(folder_path)
# 排序文件列表(可选)
files.sort()
# 遍历文件列表并重命名
for i, filename in enumerate(files, start=start_num):
# 获取文件扩展名
file_ext = os.path.splitext(filename)[1]
# 生成新的文件名
new_name = f"{prefix}_{i}{file_ext}"
# 旧文件路径
old_path = os.path.join(folder_path, filename)
# 新文件路径
new_path = os.path.join(folder_path, new_name)
# 重命名文件
os.rename(old_path, new_path)
print(f"重命名: {old_path} -> {new_path}")
# 示例调用
folder_path = "path/to/your/folder" # 替换为你的文件夹路径
prefix = "new_name" # 替换为你想要的新文件名前缀
rename_files(folder_path, prefix)
实现步骤
- 导入
os
库:在代码的开头,我们导入了os
库,这是 Python 标准库中的一个模块,用于进行文件和目录的操作。
import os
- 定义重命名函数:我们定义了一个名为
rename_files
的函数,该函数接受三个参数:文件夹路径folder_path
、新文件名前缀prefix
和起始编号start_num
。
def rename_files(folder_path, prefix, start_num=1):
- 获取文件列表:使用
os.listdir()
函数获取指定文件夹中的所有文件,并将其存储在files
列表中。
python
Copy
files = os.listdir(folder_path)
- 排序文件列表(可选):为了确保文件按顺序重命名,我们可以对文件列表进行排序。
files.sort()
- 遍历文件列表并重命名:使用
for
循环遍历文件列表,并生成新的文件名。通过os.path.splitext()
函数获取文件扩展名,并使用os.rename()
函数将旧文件名修改为新文件名。
for i, filename in enumerate(files, start=start_num):
file_ext = os.path.splitext(filename)[1]
new_name = f"{prefix}_{i}{file_ext}"
old_path = os.path.join(folder_path, filename)
new_path = os.path.join(folder_path, new_name)
os.rename(old_path, new_path)
print(f"重命名: {old_path} -> {new_path}")
- 示例调用:最后,我们提供了一个示例调用,用户可以根据自己的需求修改文件夹路径和新文件名前缀。
folder_path = "path/to/your/folder" # 替换为你的文件夹路径
prefix = "new_name" # 替换为你想要的新文件名前缀
rename_files(folder_path, prefix)
总结
通过本文的介绍,我们学习了如何使用 Python 批量修改文件夹中文件的名称。具体步骤包括导入必要的库、获取文件列表、遍历文件列表并生成新的文件名,以及使用os.rename()
函数