一、批量删除错误图片:
代码如下:
import osfor name in range(1,150):with open('C:\\Users\\adimin\\Desktop\\Pixiv_Img\\{}.png' .format(str(name)), 'rb') as fp:data = fp.read()if(len(data) == 58): # 查看一下错误图片的信息,看到错误图片的大小都是58byte,占用空间0KBos.remove('C:\\Users\\adimin\\Desktop\\Pixiv_Img\\{}.png' .format(str(name))) # 移除文件else:pass
代码没考虑太多,主要是为了直接的解决问题,所以,可以看出代码的针对性很高,但基本思路也就是这样,就是用到了os.remove方法。
更改版:
import os
for name in range(1, count):try:with open('../{}.png'.format(str(name)), 'rb') as fp:data = fp.read()if (len(data) == 58):os.remove('../{}.png'.format(str(name)))except FileNotFoundError:try:with open('../{}.jpg'.format(str(name)), 'rb') as fp:data = fp.read()if (len(data) == 58):os.remove('../{}.jpg'.format(str(name)))except FileNotFoundError:continue
二、批量修改文件名:
代码如下:
import osnew_name = 1
for name in range(1,199):# 异常处理try:with open('../{}.png' .format(str(name)), 'rb') as fp:passexcept:passelse:os.renames('../{}.png'.format(str(name)), # 修改文件名'../{}.png'.format(str(new_name)))new_name += 1
# 代码更新
import osfilename = 1
for name in range(start,end):try:os.renames('../{}.jpg'.format(str(name)),'../{}.jpg'.format(str(filename)))filename += 1except:try:os.renames('../{}.png'.format(str(name)),'../{}.png'.format(str(filename)))filename += 1except:continue
代码也很简单,重点就是用到了os.renames的方法。它的原型是:
|
|
还有一个os.rename()方法,这个方法是对某个路径的文件名进行修改。
三、删除重复图片:
用了python的字典数据类型来删除重复图片,思路是将图片数据作为key,对应文件名作为value,value如果存在,则说明图片重复,然后删除。
代码如下:
import osDataLirary = {}
for name in range(start,end):try:with open('../{}.png'.format(str(name)), 'rb') as fp:data = fp.read()dict2 = {data:str(name)}if data in DataLirary:os.remove('../{}.png'.format(DataLirary[data]))else:DataLirary.update(dict2)except FileNotFoundError:try:with open('../{}.jpg'.format(str(name)), 'rb') as fp:data = fp.read()dict2 = {data:str(name)}if data in DataLirary:os.remove('../{}.jpg'.format(DataLirary[data]))else:DataLirary.update(dict2)except FileNotFoundError:continuefinally:pass