详解Python 重命名目录中的所有文件名

  • Post category:Python

下面是Python重命名目录中所有文件名的攻略。

需求说明

我们需要将目录中所有文件名都重命名为按一定规则命名的新名称。假设现有目录结构如下:

dir
├── file1.txt
├── file2.txt
└── subdir
    ├── file3.txt
    └── file4.txt

我们需要将该目录下所有的.txt文件都重命名为以new_开头的文件名,例如new_file1.txt

方案步骤

  1. 导入os模块,使用os.listdir()函数获取目录下所有文件名。
  2. 遍历所有文件名,使用os.path.splitext()函数分离文件名和扩展名。
  3. 判断得到的扩展名是否为.txt,若是则对该文件进行重命名操作。
  4. 重命名操作使用os.rename()函数,将旧文件名替换为新文件名。

代码示例

下面是一个完整代码示例,该示例仅对dir目录下的.txt文件进行了重命名操作。

import os

# 定义目录路径
path = './dir'

# 遍历目录下的所有文件名
for filename in os.listdir(path):
    # 分离文件名和扩展名
    old_name, ext = os.path.splitext(filename)
    # 判断扩展名是否为.txt
    if ext == '.txt':
        # 生成新的文件名
        new_name = 'new_' + old_name + ext
        # 文件重命名
        os.rename(os.path.join(path, filename), os.path.join(path, new_name))

print('重命名完成!')

运行之后,dir目录下的文件结构变成了:

dir
├── new_file1.txt
├── new_file2.txt
└── subdir
    ├── new_file3.txt
    └── new_file4.txt

值得注意的是,上述代码中使用了os.path.join()函数来拼接文件路径,可以使代码在不同操作系统下正常运行。

示例说明

下面是两个示例,以说明如何对不同类型的文件进行重命名操作。

示例1:重命名PNG文件为JPG文件

现有一个目录photos,其中包含了若干个.png文件,我们需要将这些文件全部重命名为.jpg文件。

import os

path = './photos'

for filename in os.listdir(path):
    old_name, ext = os.path.splitext(filename)
    if ext == '.png':
        new_name = old_name + '.jpg'
        os.rename(os.path.join(path, filename), os.path.join(path, new_name))

print('重命名完成!')

示例2:将所有文件名转为小写

现有一个目录docs,其中包含了若干个文件,我们需要将所有文件名全部转为小写。

import os

path = './docs'

for filename in os.listdir(path):
    # 转换文件名为小写
    new_name = filename.lower()
    os.rename(os.path.join(path, filename), os.path.join(path, new_name))

print('重命名完成!')

总结

通过Python的os模块,可以方便地对目录中的文件进行重命名操作。需要注意的是,在进行重命名操作前,一定要确认文件名的修改是否符合要求,避免不必要的问题和风险。