目录与excel的操作

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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值