'''使用walk方法递归遍历目录文件,walk方法会返回一个三元组,分别是root、dirs和files。
其中root是当前正在遍历的目录路径(当前的相对路径);
dirs是一个列表,包含当前正在遍历的目录下所有的子目录名称,不包含该目录下的文件(文件夹的名字);
files也是一个列表,包含当前正在遍历的目录下所有的文件,但不包含子目录(一般是文件的名字)。
PIL安装时:pip install pillow
'''
import os
#导入标准库os操作系统,
from PIL import Image
def wenjian(path):#遍历指定文件夹中所有文件,检查图像大小,长高小于300的删除,不是图像的文件也删除
for root,dirs,files in os.walk(path):
#os.walk(path)递归的方式遍历目录文件
for name in files:
print(os.path.join(root,name))
#os.path.join(root,name)将多个路径组合后返回
try:
aa1=os.path.join(root,name)
img=Image.open((aa1))
#打开文件出错的就不是图像文件,删除
#Image.open()专接图片路径,用来直接读取该路径指向的图片
except:
#try(正常操作)except(异常时执行) finally(不管是否正常都执行)
os.remove(aa1)#删除文件
#os.remove() :用于删除指定路径的文件。如果指定的路径是一个目录,将抛出OS Error。
w=img.width #图像文件长与宽
h=img.height
img.close()
#close()用于关闭一个已打开的文件
if False:
os.remove(aa1)
print(aa1)
#pass
path=("D:\python vscode opencv\ python_xhj \start")(问题在)
wenjian(path)
dirs=os.listdir(path)
#os.listdir(path)用于返回指定的文件夹包含的文件或文件夹的名字的列表
for i in dirs:
a=os.path.normpath("%s\%s"%(path,i))
#规范path字符串形式
#print(os.path.join(path,i))
#os.path.join(path,i)将多个路径组合后返回
print(a)
pass
for root,dirs,files in os.walk(path):
#os.walk返回三个参数:当前路径、当前路径下的文件夹名称、当前路径下的文件名称
for name in dirs:
aad="\"
if not os.listdir(path+ aad+ name):
print(name)
os.removedirs(path+aad+name)#删除文件夹