使用Python3怎么移动指定文件?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
需求分解:
从excel中提取代号指数和姓名信息名称
引用>
以index_name格式批量建立文件夹namefolder
分别遍历四个文件夹及其子文件夹,将其中“文件名文件名中包含姓名名称”的文档移动到该人对应的新建的文件夹namefolder中
excel内容:,
#, - *安康;编码:utf-8 - * - import 操作系统 import shutil import xlrd import 字符串 # # #,创建多层目录 def mkdir(路径): ,#去除首位空格=,,path  path.strip () ,#去除尾部,\,符号=,,path  path.rstrip (“\ \”) ,#判断路径是否存在 ,#存在,真的 ,#不存在,假的=,,isExists  os.path.exists(路径) ,#判断结果 ,if not  isExists: #,才能创建目录操作函数 os.makedirs才能(路径) #才能,如果不存在则创建目录 打印才能(path +, & # 39;,创建成功& # 39;) return 才能正确 ,其他的: #才能,如果目录存在则不创建,并提示目录已存在 打印才能(path +, & # 39;,目录已存在& # 39;) return 才能;错误的 def search_file(路径,文件名,,newpath):=,queue [] ,queue.append(路径); ,while len(队列),祝辞,0: 时间=tmp 才能;queue.pop (0) if 才能;(os.path.isdir (tmp)): #如果该路径是文件夹 ,,for item 拷贝os.listdir (tmp): #遍历该路径中文件和文件夹 ,,,queue.append (os.path.join (tmp,,项目))#将所得路径加入队列队列 elif 才能;(os.path.isfile (tmp)): #如果该路径是文件 ,,name =, os.path.basename (tmp), #,获取文件名 ,,dirname =, os.path.dirname (tmp), #,获取文件目录 ,,full_path =, os.path.join(目录名,名字),#,将文件名与文件目录连接起来,形成完整路径 ,,des_path =, newpath + & # 39;/& # 39; +路径+ & # 39;_ # 39;+ name #目标路径,将该文件夹信息添加进最后的文件名中 ,,if filename 拷贝名称:#匹配符合条件的文件,也可用如果(name.find(文件名)!=1): ,,,shutil.move (full_path, des_path) #移动文件到目标路径(移动+重命名) if __name__ ==, & # 39; __main__ # 39;: ,#打开excel文件 ,data=https://www.yisu.com/zixun/xlrd.open_workbook(“名单.xlsx”) #获取第一张工作表(通过索引的方式) 表=data.sheet_by_index (0) # datalist用来存放数据 datalist_UNIQID=[] datalist_NAME=[] #将表中第一行的数据读取并添加到data_list中 datalist_UNIQID.extend (table.col_values (0)) datalist_NAME.extend (table.col_values (2)) # foldname=[+“_”+ b, b在zip (datalist_UNIQID datalist_NAME)] dir_tjbg='打鼾声报告” dir_fsgz=' xxx证书” dir_hbpx=' yyy证书” xyz证dir_ykfs='书' #打印出第一行的全部数据 指数,名字在zip (datalist_UNIQID datalist_NAME): foldername=指数+“_”+ name.strip () #打印(foldername) mkdir (foldername) 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 ())
<强>备忘强>
1。同步遍历两个列表
l1 =, (2, 2, 2, 2) 时间=l2 [3, 3, 3, 3] prod =, [* b for ,, b 拷贝zip (l1, l2)] print 刺激 (6 #,,,,,,,6] 时间=add [+ b for ,, b 拷贝zip (l1, l2)] print 添加 (5,,5 #,,,5,5]2。文件夹操作
import 操作系统 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(旧的,新的),#,重命名文件或目录 python os.makedirs (r" c: \ \ test"), #,创建多级目录 os.mkdir (“test"), #,创建单个目录 os.exit(), #,终止当前进程 os.path.getsize(文件名),#,获取文件大小 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()相同 null使用Python3怎么移动指定文件