练习1
1 #coding:utf-8 2 #复制文件名包含两个'7'和一个'o'的文件 3 ''' 4 import os,shutil,re 5 6 test_path = os.getcwd() 7 new_path = os.path.join(test_path,'new') 8 if not os.path.exists(new_path): 9 os.makedirs(new_path)#创建文件夹 10 11 for i in range(0,10):#遍历文件夹 12 test_dir = os.path.join(test_path,'test' + str(i)) 13 for cur_file in os.listdir(test_dir):#遍历目录 14 file_path = os.path.join(test_dir,cur_file) 15 if os.path.isfile(file_path):# 判断是否是文件 16 #print(cur_file) 17 if len(re.findall('7',cur_file)) == 2 and len(re.findall('o',cur_file)) == 1: #判断文件名是否满足条件 18 new_file = os.path.join(new_path,cur_file) 19 shutil.copyfile(file_path,new_file)#复制文件 20 print('OK!') 21 ''' 22 23 import os,shutil,re 24 25 test_path = os.getcwd() 26 new_path = os.path.join(test_path,'test1') 27 if not os.path.exists(new_path): 28 os.makedirs(new_path)#创建文件夹 29 30 for root, dirs, files in os.walk("./test"): 31 for file_name in files: 32 if len(re.findall('7',file_name)) == 2 and len(re.findall('o',file_name)) == 1: #判断文件名是否满足条件 33 new_file = os.path.join(new_path,file_name) 34 file_path = os.path.join(root,file_name) 35 shutil.copyfile(file_path,new_file)#复制文件 36 print('OK')
练习2:os.walk遍历
1 #!/usr/bin/python 2 # -*- coding: UTF-8 -*- 3 4 import os 5 for root, dirs, files in os.walk(".", topdown=False): 6 for name in files: 7 print(os.path.join(root, name)) 8 for name in dirs: 9 print(os.path.join(root, name))
练习3:
1 ''' 2 将文件名中后缀字母与前缀重复个数大于2的文件归类 3 ''' 4 import os,shutil,re 5 6 test_path = os.getcwd() 7 new_path = os.path.join(test_path,'test3') 8 if not os.path.exists(new_path): 9 os.makedirs(new_path)#创建文件夹 10 11 for root, dirs, files in os.walk("./test"): 12 for file_name in files: 13 name_list = re.findall('[a-z]+',file_name) 14 first_name = name_list[0] 15 last_name = name_list[1] 16 last_name_list = list(set(last_name))#去重复 17 last_name_list.sort()#排序 18 list1 = [x for x in last_name_list if x in first_name]# 19 str1 = '' 20 for x in list1 : 21 str1 = str1 + x 22 if len(list1) >= 2: 23 new_path1 = os.path.join(new_path,str1) 24 if not os.path.exists(new_path1): 25 os.makedirs(new_path1)#创建文件夹 26 new_file = os.path.join(new_path1,file_name) 27 file_path = os.path.join(root,file_name) 28 shutil.copyfile(file_path,new_file)#复制文件 29 print('OK') 30 # 31 32 # if expression: 33 # pass