下面是Python重命名目录中所有文件名的攻略。
需求说明
我们需要将目录中所有文件名都重命名为按一定规则命名的新名称。假设现有目录结构如下:
dir
├── file1.txt
├── file2.txt
└── subdir
├── file3.txt
└── file4.txt
我们需要将该目录下所有的.txt
文件都重命名为以new_
开头的文件名,例如new_file1.txt
。
方案步骤
- 导入
os
模块,使用os.listdir()
函数获取目录下所有文件名。 - 遍历所有文件名,使用
os.path.splitext()
函数分离文件名和扩展名。 - 判断得到的扩展名是否为
.txt
,若是则对该文件进行重命名操作。 - 重命名操作使用
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
模块,可以方便地对目录中的文件进行重命名操作。需要注意的是,在进行重命名操作前,一定要确认文件名的修改是否符合要求,避免不必要的问题和风险。