Python 文件夹/文件操作
1、os.listdir() — 返回当前文件夹下的所有目录名称(列表)
2、os.walk() — 遍历目录树,输出目录中的文件名,返回一个三元组(root,dirs,files)
- root 所指的是当前正在遍历的这个文件夹的本身的地址
- dirs 是一个 list ,内容是该文件夹中所有的目录的名字(不包括子目录)
-
files 同样是 list , 内容是该文件夹中所有的文件(不包括子目录)
''' def copy_file(old_file, new_file): new_file_temp = new_file for root, dirs, files in os.walk(old_file, topdown=False): for name in files: sub_path = root.split('\\')[-1] sub_sub_path = root.split('\\')[-2] if sub_path == 'R0': sub_path_new = '5' elif sub_path == 'R1': sub_path_new = '6' elif sub_path == 'R2': sub_path_new = '7' verify_or_enroll = '' if(int(name.split('.')[0]) < 1): verify_or_enroll = 'enroll' elif(int(name.split('.')[0]) >= 1 ): verify_or_enroll = 'verify' new_file_path = os.path.join(new_file_temp, sub_sub_path, sub_path_new, verify_or_enroll, 'st') if not os.path.exists(new_file_path): os.makedirs(new_file_path) new_file_name = os.path.join(new_file_path, name) old_file_name = os.path.join(root, name) shutil.copyfile(old_file_name, new_file_name) print(old_file_name, 'to', new_file_name) '''
summary:
- walk中的topdown参数为False时,遍历方式是从子文件开始,此时获得的root即为子文件所在的目录,files即为同一子文件夹下文件名构成的列表
- 当子文件遍历完成之后,向上遍历,此时files为空,遍历结束