前言---昨天中午在百度云上下载了三千多张照片,想将其设为壁纸,但是发现照片的质量参差不齐,有的很大,有的却只有几百K所以就萌生了一个想法能不能对照片进行批量化地操作,筛选出一些质量不高的照片,同时能让照片更加整齐化,进行统一格式的命名。下面我们就来搞事情吧。
1 from __future__ import division #这里引入浮点数能让 10/3 =3.33333 2 3 import os 4 5 6 7 #批量化修i该某一文件夹下的照片的文件名 8 def changeNames(): 9 10 newname = input("请输入新文件名的前缀:") 11 12 range1 = input("请输入开始数字:") 13 14 #range2 = input("请输入结束数字:") 15 16 path = input("请输入您想重名的文件所在的路径:") 17 18 19 #我们仅仅是想更改照片的文件名,所以需要将常见的文件格式保存起来 20 pic_type = ['.jpg','.png','.JPG','.PNG','.jpeg'] 21 22 #强制类型转换 23 i = int (range1) 24 25 26 #对文件夹下的文件进行遍历 27 for file in os.listdir(path): 28 29 #if os.path.isfile(file) == True: 30 31 #print(i) 32 33 # 若一个文件名为 1.png 则nanme =1,ext =.png 34 name, ext = os.path.splitext(file) 35 36 37 #将遍历到的文件与我们保存的文件类型进行对比,若是照片格式我们则进行更改操作 38 if ext in pic_type: 39 40 Newname = newname + '_' + str(i) + ext 41 42 file_path = path+'\\'+name + ext 43 44 Newname_path = path +'\\'+ Newname 45 46 print(file_path) 47 48 print(Newname_path) 49 50 os.rename(file_path,Newname_path) 51 52 print("修改名字成功!") 53 54 i = i + 1 55 56 57 #筛选出某一文件夹下的质量不高的照片 58 def deleteUseless(): 59 60 path = input("请输入您想删除的文件所在的路径:") 61 62 pic_type = ['.jpg', '.png', '.JPG', '.PNG', '.jpeg'] 63 64 save_size = input("请输入您想保留的最小文件大小 [比如您想删除500k以下的文件只需要输入500即可]:") 65 66 print('***********************************************************************') 67 68 69 70 print('***********************************************************************') 71 72 for file in os.listdir(path): 73 74 #用save_size1保存整形数 75 save_size1 = int(save_size) 76 77 file_path = path + '\\' + file 78 79 size =(os.path.getsize(file_path))/1024 80 81 82 83 try: 84 85 if size < save_size1: 86 87 os.remove(file_path) 88 89 print('文件小于您的要求所以删除!') 90 91 92 93 else: 94 95 print('***********************************************************************') 96 97 print(file + '的大小是' + str((os.path.getsize(file_path)) / 1024) + 'K' + '大于您想保存的文件大小,所以系统选择保留') 98 99 except : 100 101 print("Error") 102 103 print('***********************************************************************') 104 105 106 107 108 109 if __name__=='__main__': 110 111 #changeNames() 112 113 deleteUseless()
下面就是效果图 这里是还没进行修改的的文件夹修改成功后
筛选出质量不高的照片