"""
describe:批量重命名指定目录(包含子目录)下面所有文件的后缀名
author:taozi
date:20190719
"""
import os
def batch_rename(work_dir, old_ext, new_ext):
"""
:param work_dir: 指定目录
:param old_ext: 旧文件扩展名
:param new_ext: 新文件扩展名
:return:
"""
files = os.listdir(work_dir) # 返回指定的文件夹包含的文件或文件夹的名字的列表
print(files) # ['cheng.json', 'test11', 'xioade.json']
for filename in os.listdir(work_dir):
# 获取文件的扩展名
split_file = os.path.splitext(filename) # ('cheng', '.txt')
print(split_file)
file_ext = split_file[1]
if file_ext != '': # 后缀名为空代表是目录
if old_ext == file_ext:
# 返回使用新扩展名更改的文件名称
newfile = split_file[0] + new_ext
os.rename(
os.path.join(work_dir, filename), # 旧文件
os.path.join(work_dir, newfile) # 新文件
)
else:
# 实现子目录文件修改
print('这是一个目录文件:{}'.format(filename))
work_dir_r = os.path.join(work_dir, filename)
print(work_dir_r)
batch_rename(work_dir_r, old_ext, new_ext)
if __name__ == '__main__':
work_dir = 'D:/test'
batch_rename(work_dir, '.txt', '.json')
Python学习打卡--day48(练习:批量修改文件后缀名)
最新推荐文章于 2025-08-30 10:17:24 发布
本文介绍了一个Python脚本,该脚本可以批量修改指定目录(包括子目录)下所有文件的后缀名。通过简单的参数配置即可实现文件扩展名的替换。
&spm=1001.2101.3001.5002&articleId=96515920&d=1&t=3&u=27400f4955c24aca9ded47c14866d3ee)
9228

被折叠的 条评论
为什么被折叠?



