# coding:utf-8
import os
allFileNum = 0
# 重命名一个目录下的所有文件的名字
def Rename(level, path):
global allFileNum # 使用全局变量allFileNum
# 存放当前目录下所有文件夹的列表
dirList = []
# 存放当前目录下所有文件的列表
fileList = []
# 返回一个列表,其中包含该path目录下的所有文件名和文件夹名
files = os.listdir(path)
# 添加目录级别,递归打印文件夹时使用
dirList.append(str(level))
for f in files:
if os.path.isdir(path + '/' + f): # 判断是不是文件夹
if f[0] != '.': # 排除隐藏文件夹。因为隐藏文件夹过多
dirList.append(f) # 添加非隐藏文件夹
if os.path.isfile(path + '/' + f): # 判断是不是文件
fileList.append(f) # 添加文件
i_dl = 0 # 当一个标志使用,文件夹列表第一个级别不打印
for dl in dirList:
if i_dl == 0:
i_dl = i_dl + 1
else:
print('-' * (int(dirList[0])), dl) # 打印至控制台,不是第一个的目录
Rename((int(dirList[0]) + 1), path + '/' + dl) # 重命名目录下的所有文件夹和文件,目录级别+1
for fl in fileList:
src = path + '/' + fl
dst = path + '/000' + fl
os.rename(src, dst)
print(src + '\t----->\t' + dst)
allFileNum = allFileNum + 1 # 计算该目录下有多少个文件
if __name__ == '__main__':
Rename(1, "E:/Desktop/提货单_files")
print("成功重命名{}个文件。".format(allFileNum))
'''
补充:
os.rename(src, dst)
src -- 要修改的目录名
dst -- 修改后的目录名
os.rename() 方法用于命名文件或目录,从 src 到 dst,如果dst是一个存在的目录, 将抛出OSError。
'''