解析xlsx文件并依据里面的数据批量修改文件夹名实例
import xlrd
import os
print('请输入xlsx文件夹路径及名称\n)
xlsxPath =input()
print('请输入文件夹路径')
filePath =input()
begin=[]
end=[]
keyerror=[]
existerror=[]
#打开xlsx
bool=True
while bool:
try:
workbook = xlrd.open_workbook(xlsxPath)
bool=False
#路径错误异常
except PermissionError:
print('请重新输入xlsx文件地址:')
xlsxPath =input()
#文件不存在异常
except FileNotFoundError:
print('请重新输入xlsx文件地址:')
xlsxPath =input()
#读取xlsx
booksheet = workbook.sheet_by_index(0)
#读取5000行数据
for x in range(5000):
try:
begin.append(booksheet.cell_value(x,1))
end.append(booksheet.cell_value(x,2))
#读取到空内容异常
except IndexError:
pass
data = dict(zip(begin,end))
#获取文件夹目录
bool=True
while bool:
try:
#这是一个很有用的获取指定目录下的所有文件、文件夹名的函数
#r'\head'表示非转义字符串 若不加r则\会变为转移符号,具体区别建议敲两行代码体会一下
filename = os.listdir(filePath+r'\head')
bool=False
except PermissionError:
print('请重新输入文件夹地址:')
filePath =input()
except FileNotFoundError:
print('请重新输入文件夹地址:')
filePath =input()
#修改文件夹名
for name in filename:
try:
#文件重命名函数,参数均为路径带文件夹名
os.rename(filePath+r'\head'+'\\'+name,filePath+r'\head'+'\\'+data[name])
except KeyError:
keyerror.append(name)
except FileExistsError:
existerror.append(name)
#获取文件夹目录
bool=True
while bool:
try:
filename = os.listdir(filePath+r'\back')
bool=False
except PermissionError:
print('请重新输入文件夹地址:')
filePath =input()
except FileNotFoundError:
print('请重新输入文件夹地址:')
filePath =input()
#修改文件夹名
for name in filename:
try:
os.rename(filePath+r'\back'+'\\'+name,filePath+r'\back'+'\\'+data[name])
except KeyError:
keyerror.append(name)
except FileExistsError:
existerror.append(name)
#输出错误信息
print('\n\n')
if len(keyerror)!=0:
print('下列是文件夹名不在xlsx文件中的文件夹列表')
for x in keyerror:
print(x)
print('\n\n')
if len(existerror)!=0:
print('下列是因修改的文件夹名已存在而修改失败的文件夹列表')
for x in existerror:
print(x)
print('\n\n按回车键退出')
input()
注:需求需要,设定指定路径下必须有back 和head两个文件夹,按xlsx表格修改文件夹下的文件夹名称