page contents
侧边栏壁纸
博主头像
seabell-贝海运维站-分享技术干货与行业动态

残雪凝辉冷画屏,落梅横笛已三更,更无人处月胧明

  • 累计撰写 27 篇文章
  • 累计创建 5 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

使用 Python 重命名多个文件(无需手动操作)

seabell
2025-11-16 / 0 评论 / 0 点赞 / 11 阅读 / 0 字

你是否有文件名混乱的文件夹,例如IMG_1234.jpgFile(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 步:修改脚本以满足您的需要

在此步骤中,您只需调整脚本的两行,使其适合您的目的:

  1. folder_to_rename = '。
    此行包含存储文件的文件夹的名称。如果只省略 这意味着脚本将在存储脚本本身的同一文件夹中运行。也就是说,如果您正确地遵循了步骤 1,则无需更改任何内容。但是,如果您的文件位于其他地方,请将 替换为该文件夹的完整路径。例如:'.' .'C:\\Users\\YourName\\Pictures\\PhotosToRename'

  2. 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

例:

1

cd C:\Users\YourName\Desktop\Rename_Files_Project

现在您已进入正确的目录,请运行 Python 脚本:

1

python rename_script.py

压。Enter

该脚本将运行并为其重命名的每个文件显示一条消息。所有文件完成后,您将收到一条确认消息,所有文件都将使用您提供的前缀和编号重命名。

额外提示:重命名特定文件类型

您只想重命名格式的文件吗?.jpg

因此,您可以在 for 循环中添加一个小条件,以仅处理文件,跳过所有其他文件。只需在 for 循环的开头添加以下行:.jpg

1

2

if not filename.lower().endswith('.jpg'):

    continue

这意味着 - 如果文件名不以 结尾,请跳过它并转到下一个。这将使您的脚本仅选择所需的文件。.jpg

常见问题解答(FAQ)

1. 如果我希望编号从 100 而不是 1 开始怎么办?例如?Vacation_100.jpg

没关系。脚本中的“1”表示计数从 1 开始。如果要从 100 开始,只需将其更改为 。enumerate(files, 1)enumerate(files, 100)

2. 我的文件以错误的顺序重命名(例如 1、10、11、2)?为什么会这样?

因为计算机在正常排序中将数字视为文本。所以它把“10”放在“2”之前(按字母顺序排列)。解决方案:使用正确识别数字的排序方法。下面是一小段代码,可以做到这一点:

1

2

3

4

5

6

7

8

import re

 

def extract_number(filename):

    s = re.findall(r'\d+', filename)

    return int(s[0]) if s else -1

 

# Modify files.sort():

files.sort(key=extract_number)

此方法从每个文件名中提取一个数字,并按正确的顺序排列文件。

3. 如果我想重命名另一个文件夹中的文件,但希望脚本保持不变,该怎么办?

因此,请更改以提供该文件夹的完整路径。例如:。请记住 - 在 Windows 中,键入路径时必须使用双反斜杠 ()。folder_to_rename = '.'folder_to_rename = 'C:\\Users\\YourName\\Documents\\MyPhotos'\\

0

评论区