你是否有文件名混乱的文件夹,例如IMG_1234.jpg,File(7).txt或者New Document.docx?
如果尝试逐个重命名文件,可能需要几个小时。但别担心,Python 只需几秒钟就能完成。只需按照本指南操作,即可自动重命名文件。
本指南将创建一个 Python 脚本,用于一次性重命名文件夹中的所有文件。无论该文件夹包含照片还是“下载”文件夹中的零散文件,所有内容都将变得井然有序。
前后对比示例
让我们看看这个脚本能带来什么样的改变。
📂 之前:
IMG_1234.jpg
IMG_1235.jpg
IMG_1236.jpg
📂 假期之后(前缀为 = Vacation):
Vacation_1.jpg
Vacation_2.jpg
Vacation_3.jpg
先决条件
包含要重命名的文件的文件夹。
您的计算机上应该已安装 Python。
第一步:设置工作区
1. 创建一个新文件夹:
在桌面上创建一个新文件夹,并将其命名为Rename_Files_Project.
2. 添加您的文件:
将要重命名的文件放入此文件夹中。例如,您有一些图像文件 – , , 等 – 将它们全部放在这里。IMG_1234.jpgIMG_1235.jpg
3. 创建 Python 文件:
现在打开任何文本编辑器,如记事本、VS Code 或 Sublime Text。在编辑器中创建一个空白文件,并将其保存在刚刚创建的同一“Rename_Files_Project”文件夹中。将此文件命名为:rename_script.py

第 2 步:编写 Python 脚本
打开名为的文件,然后将以下代码复制粘贴到其中:rename_script.py
import os
import re
# This function renames all files in a folder with a new name.
def rename_files(folder_path, prefix):
"""
This function renames all files in a given folder by giving them a new prefix and serial number.
Args:
folder_path (str): The folder where the files are stored.
prefix (str): The new prefix to be added to the name of each file (e.g. 'Vacation').
"""
try:
# Get a list of all the items in the folder.
files = os.listdir(folder_path)
# Keep only files from the list and remove folders.
files = [f for f in files if os.path.isfile(os.path.join(folder_path, f))]
# Sort the files so that the serial numbers are in the correct order.
files.sort()
# Now rename each file one by one.
for index, filename in enumerate(files, 1):
# Separate the file name and its extension.
name, extension = os.path.splitext(filename)
# Create a new name: prefix + serial number + extension
new_filename = f"{prefix}_{index}{extension}"
# Create the old and new file paths.
old_filepath = os.path.join(folder_path, filename)
new_filepath = os.path.join(folder_path, new_filename)
# Now give the file a new name.
os.rename(old_filepath, new_filepath)
print(f"Renamed '{filename}' to '{new_filename}'")
print("\nAll files have been renamed successfully!")
except FileNotFoundError:
print(f"Error: The given folder ('{folder_path}') was not found.")
except Exception as e:
print(f"Something went wrong: {e}")
# Here you will tell which folder to rename and what will be the new name.
# '.' means the folder where this script is currently running.
folder_to_rename = '.'
new_prefix = 'Vacation'
# The script starts with the below line.
if __name__ == "__main__":
rename_files(folder_to_rename, new_prefix)第 3 步:修改脚本以满足您的需要
在此步骤中,您只需调整脚本的两行,使其适合您的目的:
folder_to_rename = '。
此行包含存储文件的文件夹的名称。如果只省略 这意味着脚本将在存储脚本本身的同一文件夹中运行。也就是说,如果您正确地遵循了步骤 1,则无需更改任何内容。但是,如果您的文件位于其他地方,请将 替换为该文件夹的完整路径。例如:'.' .'C:\\Users\\YourName\\Pictures\\PhotosToRename'new_prefix = '假期'
这一行确定了文件的新名称。代替 写任何你想要的名字。如:、、等。然后您的文件将命名为如下所示: , , ...等等。'Vacation''My_Docs''Project_Files''College_Notes'My_Docs_1.jpgMy_Docs_2.jpgMy_Docs_3.jpg
步骤 4:运行脚本
提示: 在运行脚本前先备份文件,安全第一!
首先,打开命令提示符:
如果您在 Windows 上运行,请按 ,然后键入 并按 。
Win + RcmdEnter如果您使用的是 macOS 或 Linux,请打开终端。
现在转到项目所在的文件夹,名为 。使用命令执行此作:Rename_Files_Projectcd

例:
现在您已进入正确的目录,请运行 Python 脚本:
压。Enter
该脚本将运行并为其重命名的每个文件显示一条消息。所有文件完成后,您将收到一条确认消息,所有文件都将使用您提供的前缀和编号重命名。

额外提示:重命名特定文件类型
您只想重命名格式的文件吗?.jpg
因此,您可以在 for 循环中添加一个小条件,以仅处理文件,跳过所有其他文件。只需在 for 循环的开头添加以下行:.jpg
这意味着 - 如果文件名不以 结尾,请跳过它并转到下一个。这将使您的脚本仅选择所需的文件。.jpg
常见问题解答(FAQ)
1. 如果我希望编号从 100 而不是 1 开始怎么办?例如?Vacation_100.jpg
没关系。脚本中的“1”表示计数从 1 开始。如果要从 100 开始,只需将其更改为 。enumerate(files, 1)enumerate(files, 100)
2. 我的文件以错误的顺序重命名(例如 1、10、11、2)?为什么会这样?
因为计算机在正常排序中将数字视为文本。所以它把“10”放在“2”之前(按字母顺序排列)。解决方案:使用正确识别数字的排序方法。下面是一小段代码,可以做到这一点:
此方法从每个文件名中提取一个数字,并按正确的顺序排列文件。
3. 如果我想重命名另一个文件夹中的文件,但希望脚本保持不变,该怎么办?
因此,请更改以提供该文件夹的完整路径。例如:。请记住 - 在 Windows 中,键入路径时必须使用双反斜杠 ()。folder_to_rename = '.'folder_to_rename = 'C:\\Users\\YourName\\Documents\\MyPhotos'\\
评论区