# -*- coding=utf-8 -*-
import os
def lst_rename(dirpath, o_key, n_key):
"""
lst_rename :修改当前文件夹内,文件名的关键字(不会修改文件夹)
参数:dirpath 文件夹路径
o_key 文件名中待修改字符
n_key 改成后字符,默认为空
返回:修改次数
"""
# 获取文件夹内的文件名列表
filelist = os.listdir(dirpath)
# 计数器
flag = 0
# 遍历当前文件列表
for filename in filelist:
# 文件名绝对路径
old_filepath = dirpath + os.sep + filename
# 判断是否为文件夹,是则跳过
if os.path.isdir(old_filepath):
continue
# 替换关键词
new_filename = filename.replace(o_key, n_key)
# 新的文件路径
new_filepath = dirpath + os.sep + new_filename
# 修改文件名
os.rename(old_filepath, new_filepath)
# 打印修改后的文件名
print(new_filename)
# 计数
flag += 1
# 提示修改次数
print("已修改", flag, "处")
# 提示修改结束
print('end')
def rename_walk(dirpath, o_key, n_key=''):
"""
rename_walk :遍历修改指定路径内的所有符合要求文件名,含子文件夹
参数:dirpath 文件夹路径
o_name 文件名中待修改字符
n_name 改成后字符,默认为空
返回:修改次数
"""
# 初始化计数器
flag = 0
# 提示开始
print('=== action ===')
# 遍历文件夹
for wdir, ndir, filename_lst in os.walk(dirpath):
# 遍历当前文件夹文件名
for filename in filename_lst:
# 文件的绝对路径
oldfilepath = wdir + os.sep + filename
# 新的文件名
new_filename = filename.replace(o_key, n_key)
# 合成新的文件绝对路径
newfilepath = wdir + os.sep + new_filename
# 计数
flag += 1
# 修改文件名
os.rename(oldfilepath, newfilepath)
# 打印修改后的文件名
print(new_filename)
# 打印修改次数
print("已修改", flag, "处")
# 提示结束修改
print('==== end ====')
def main():
dirname = str(input("文件夹绝对路径 >>"))
o_key = str(input("修改的关键字 >>"))
n_key = str(input("修改的结果 >>"))
# lst_rename(dirname, o_key, n_key)
rename_walk(dirname, o_key, n_key)
ok = input("按回车结束")
if __name__ == "__main__":
main()