应用场景
最近在进行图片爬取的时候发现下载下来的图片大多名字乱七八糟,所以我在网上找了一下利用Python的重命名的代码,用完之后想要记录下载下来:
完整代码(本人蹩脚的注解)
# -*- coding:utf8 -*-
#加载库文件
import os#os库是交互的第三方库,通常用作对文件的操作,本文中用来修改文件名
class Rename():#创建一个类,其实没必要用类,直接用函数也是可以的
def __init__(self):#类中的函数叫做方法,这是类中的第一个方法,它的作用是进行初始化
self.path = 'C:\\Users\\17272\\Desktop\\low2high\\数据集\\自己下载的数据集\\日本妹子高清png\\val_image' #‘’内放置需要命名处理的文件夹,要拿去用的话需要修改
def rename(self):#类中的函数叫做方法,这是类中的第二个方法,作用是进行文件的重命名
FileList = os.listdir(self.path) #os.listdir(path) 返回指定路径下所有文件和文件夹的名字,并存放于一个列表中。
total_num = len(Filelist) #获取文件长度(个数)
i = 1 #表示文件的命名是从1开始的
for item in filelist:
if item.endswith('.png'): #选择文件名以png结尾的
src = os.path.join(os.path.abspath(self.path), item)#os.path.join()函数将路径进行整合;os.path.abspath()函数将路径转为绝对路径;在绝对路径后加上文件名,可以直接找到路径
dst = os.path.join(os.path.abspath(self.path), str(i) + '.png')#处理后的格式也为jpg格式的,当然这里可以改成png格式
try:#异常处理,当出现OSError后会跳到下一个图片,不会导致程序中断
os.rename(src, dst)
print ('converting %s to %s ...' % (src, dst))
i = i + 1
except:
continue
print ('total %d to rename & converted %d jpgs' % (total_num, i))
if __name__ == '__main__':
demo = Rename()#创建一个BatchRename()的类,名字叫做demo
demo.rename()