按照提示输入信息,可以批量修改文件或文件夹的名字,可以选择是否要修改子文件夹内的文件或文件夹的名字
import os
import time
def user_ShuRu(): # 用户输入模块
gen_path = input('请输入文件夹路径:') # 让用户输入需要批量修改的文件绝对路径
old_Zi = input('请输入需要修改的符号或其他字符:')
new_Zi = input('请输入修改后的符号或其他字符 如果不需要修改仅是删除的话,请输入回车:')
user_XuanZe = input('请输入是否需要更改子文件夹内的文件,如果需要请输入数字1,如不需要输入回车即可:')
return gen_path, old_Zi, new_Zi, user_XuanZe
def PiChuLi_1(): # 需要更改子目录内的文件时调用的函数
wenJianShu = 0
wenJianJia_DuiXiang_path_list = []
tag = True
while tag:
now_path = os.getcwd() # 定义一下现在的路径
wenJianShu = wenJianShu + PiChuLi(now_path) # 统计文件及文件夹的数量,并调用批处理程序 进行加工
for old_name in os.listdir(now_path): # 遍历本地路径内的所有文件及文件夹
duiXiang_path = os.path.join(now_path, old_name) # 拼接文件或文件夹的 完整路径
if os.path.isdir(duiXiang_path) == True: # 判断完整路径是否位文件夹
wenJianJia_DuiXiang_path_list.append(duiXiang_path) #如果是文件夹则把路径添加到列表
if bool(wenJianJia_DuiXiang_path_list) == True: # 如果列表内有文件夹的路径
os.chdir(wenJianJia_DuiXiang_path_list[0]) #进入第一个文件夹
del wenJianJia_DuiXiang_path_list[0] #把已经进入的文件夹路径删除
else:
tag = False #不再进行循环
return wenJianShu
def PiChuLi(now_path): # 单纯的批处理改名
wenJianShu = 0
for old_name in os.listdir(now_path):
new_name = old_name.replace(old_Zi, new_Zi)
os.rename(old_name, new_name)
wenJianShu +=1
return wenJianShu
start_time = time.time()
gen_path, old_Zi, new_Zi, user_XuanZe = user_ShuRu() # 搞一下全局变量 让他们可得到函数的返回值
os.chdir(gen_path) # 把程序工作路径跳转到输入的路径
if user_XuanZe != '1':
wenJianShu = PiChuLi(gen_path)
elif user_XuanZe == '1':
wenJianShu = PiChuLi_1()
stop_time = time.time()
print('已完成, 本次共处理文件%d个, 共耗时%s 秒' % (wenJianShu, (stop_time - start_time)))