DDR爱好者之家 Design By 杰米
引言
某人需求:以某excel中姓名信息为名建立一系列文件夹,分别将四个文件夹中与人名对应的文件汇总到该人名对应的文件夹中,共近200人,手工处理费时费力。
需求分解:
从excel中提取代号index和姓名信息name
以index_name格式批量建立文件夹namefolder
分别遍历四个文件夹及其子文件夹,将其中“文件名filename中包含姓名name”的文档移动到该人对应的新建的文件夹namefolder中
excel内容:
处理前:
处理后:
功能实现比较容易,权当记录。
环境:Python3.6+macOS10.12.5
代码
# -*- coding: utf-8 -*- import os import shutil import xlrd import string ### 创建多层目录 def mkdirs(path): # 去除首位空格 path = path.strip() # 去除尾部 \ 符号 path = path.rstrip("\\") # 判断路径是否存在 # 存在 True # 不存在 False isExists = os.path.exists(path) # 判断结果 if not isExists: # 创建目录操作函数 os.makedirs(path) # 如果不存在则创建目录 print(path + ' 创建成功') return True else: # 如果目录存在则不创建,并提示目录已存在 print(path + ' 目录已存在') return False def search_file(path, filename, newpath): queue = [] queue.append(path); while len(queue) > 0: tmp = queue.pop(0) if (os.path.isdir(tmp)):#如果该路径是文件夹 for item in os.listdir(tmp):#遍历该路径中文件和文件夹 queue.append(os.path.join(tmp, item))#将所得路径加入队列queue elif (os.path.isfile(tmp)):#如果该路径是文件 name = os.path.basename(tmp) # 获取文件名 dirname = os.path.dirname(tmp) # 获取文件目录 full_path = os.path.join(dirname, name) # 将文件名与文件目录连接起来,形成完整路径 des_path = newpath+'/'+path+'_'+name #目标路径,将该文件夹信息添加进最后的文件名中 if filename in name:#匹配符合条件的文件,也可用if(name.find(filename)!=-1): shutil.move(full_path, des_path)#移动文件到目标路径(移动+重命名) if __name__ == '__main__': #打开excel文件 data=xlrd.open_workbook('名单.xlsx') #获取第一张工作表(通过索引的方式) table=data.sheet_by_index(0) #datalist用来存放数据 datalist_UNIQID=[] datalist_NAME=[] #将table中第一行的数据读取并添加到data_list中 datalist_UNIQID.extend(table.col_values(0)) datalist_NAME.extend(table.col_values(2)) #foldname = [a+'_'+b for a, b in zip(datalist_UNIQID,datalist_NAME)] dir_tjbg='zzz报告' dir_fsgz='xxx证书' dir_hbpx='yyy证书' dir_ykfs='xyz证书' #打印出第一行的全部数据 for index, name in zip(datalist_UNIQID, datalist_NAME): foldername=index+'_'+name.strip() #print(foldername) mkdirs(foldername) search_file(dir_tjbg,name.strip(),foldername) search_file(dir_fsgz,name.strip(),foldername) search_file(dir_hbpx,name.strip(),foldername) search_file(dir_ykfs,name.strip(),foldername)
备忘
1. 同步遍历两个list
l1 = [2,2,2,2] l2 = [3,3,3,3] prod = [a*b for a, b in zip(l1,l2)] print prod # [6, 6, 6, 6] add = [a+b for a, b in zip(l1,l2)] print add # [5, 5, 5, 5]
2. 文件夹操作
import os import shutil os.getcwd() # 获取当前工作目录,非脚本目录 os.listdir() # 返回指定目录下的所有文件和目录,非递归 os.remove() # 删除文件 os.removedirs() #删除目录 os.path.isfile() # 检验给出的路径是否是一个文件 os.path.isdir() # 检验给出的路径是否是一个目录 os.path.isabs() # 判断是否是绝对路径 os.path.exists() # 检验给出的路径是否真实存在 os.path.split() # 返回一个路径的目录名和文件名 os.path.splitext() # 分离文件扩展名 os.path.dirname() # 获取文件路径名 os.path.basename() # 获取一个绝对路径下的文件名 os.system() # 运行shell命令 os.rename(old,new) # 重命名文件或目录 os.makedirs(r"c:\python\test") # 创建多级目录 os.mkdir("test") # 创建单个目录 os.exit() # 终止当前进程 os.path.getsize(filename) # 获取文件大小 os.mknod("test.txt") # 创建空文件 shutil.copyfile("oldfile","newfile") # oldfile和newfile都只能是文件 shutil.copytree("olddir","newdir") # olddir和newdir都只能是目录,且newdir必须不存在 shutil.move("oldpos","newpos") # 移动文件或目录 shutil.rmtree("dir") # 删除目录,与os.removedirs()相同 os.path.join(“home”, "me", "mywork") # 路径连接
参考
- Python3 操作Excel文件(读写)
- Python操作excel的几种方式–xlrd、xlwt、openpyxl(部分函数不适用于python3,如column_values改为col_values)
- Python中zip()函数用法举例
- python脚本初体验之一键移动自定格式文件
- 每天一个python模块之文件目录操作-os以及shutil模块
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对的支持。
DDR爱好者之家 Design By 杰米
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
DDR爱好者之家 Design By 杰米
暂无评论...
稳了!魔兽国服回归的3条重磅消息!官宣时间再确认!
昨天有一位朋友在大神群里分享,自己亚服账号被封号之后居然弹出了国服的封号信息对话框。
这里面让他访问的是一个国服的战网网址,com.cn和后面的zh都非常明白地表明这就是国服战网。
而他在复制这个网址并且进行登录之后,确实是网易的网址,也就是我们熟悉的停服之后国服发布的暴雪游戏产品运营到期开放退款的说明。这是一件比较奇怪的事情,因为以前都没有出现这样的情况,现在突然提示跳转到国服战网的网址,是不是说明了简体中文客户端已经开始进行更新了呢?
更新日志
2024年11月26日
2024年11月26日
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]