import os
import shutil
import xlrd
'''
该脚本的作用是找到文件夹的id与excel的id一致,然后将文件夹的id重命名与id对应的工号
'''
class A():
def change_dir(self,rootdir):
for dir in os.listdir(rootdir):
dir_path = os.path.join(rootdir,dir)
if os.path.isdir(dir_path):
dir_content = os.listdir(dir_path)
if {"Enroll", "Large"} == set(dir_content):
basename = os.path.basename(dir_path)
if basename in self.id_map:
rename_id = self.id_map[basename]
new_dir_path = dir_path.replace(basename, rename_id)
shutil.move(dir_path, new_dir_path)
else:
self.change_dir(dir_path)
# for i in range(self.nrows):
# if os.path.isdir(dir_path) and dir == self.row_data[i][0]:
# #print(self.row_data[i][0])
# print(dir_path)
# dir1 = self.row_data[i][2]
# dir_path2 = os.path.join(rootdir,dir1)
# shutil.move(dir_path,dir_path2)
# #print(dir_path2)
# elif os.path.isdir(dir_path) and dir != self.row_data[i][0]:
# self.change_dir(dir_path)
# else:
# pass
def read_excel(self,excel_patn):
data = xlrd.open_workbook(excel_patn)
table = data.sheets()[0] #第一张表
self.nrows = table.nrows
self.ncols = table.ncols
self.row_data = []
for i in range(self.nrows):
self.rows = table.row_values(i)#第二行的数据
self.row_data.append(self.rows)
#cols = table.col_values(0) #第一列的数据
#print(self.row_data)
#print(self.row_data[1][2])
self.id_map = {}
for data in self.row_data[1:]:
self.id_map[str(int(data[0]))] = data[2]
if __name__ =='__main__':
rootdir = r"C:\桌面\火神_20200302"
excel_patn =r'C:\桌面\SenseLink id-工号对照表(1).xlsx'
a=A()
a.read_excel(excel_patn)
a.change_dir(rootdir)
目录与excel的操作
最新推荐文章于 2024-10-13 19:04:04 发布