1、多层文件夹下jpg提取汇总
import os
import shutil
import glob
import cv2
path = 'J:/0mineOperation/20221024'
new_path = 'J:/0mineOperation/all2'
for root, dirs, files in os.walk(path): # 提取文件夹下所有jpg文件复制转移到新的文件夹
for i in range(len(files)):
if files[i][-3:] == 'jpg' or files[i][-3:] == 'JPG': # files[i]直接输出全部的文件名,而files[i][-3:]输出的是该文件的扩展名
file_path = root + '/' + files[i]
new_file_path = new_path + '/' + files[i]
shutil.copy(file_path, new_file_path)
img_path = glob.glob('J:/new/*.jpg') # 获取新文件夹下所有图片
i = 1
for each in img_path:
img = cv2.imread(each, cv2.IMREAD_UNCHANGED)
cv2.imshow('Image', img) # 顺次显示每一帧
k = cv2.waitKey(0) # 每一帧等待时间为无穷大
if k == ord('s'): # 当按s键时保存此帧,按其他键则不保存而跳到下一帧
cv2.imwrite('D:/want/%d.jpg' % i, img, [int(cv2.IMWRITE_JPEG_QUALITY), 100])
cv2.destroyAllWindows()
else:
cv2.destroyAllWindows()
i = i + 1
外层文件夹下有96个子目录,但提取出来有115张JPG,说明有文件夹内包含多个
2、查看一个文件夹下子目录数目
(1)简单统计数量
import os
target_path='J:/0mineOperation/20221024'
all_content=os.listdir(target_path)
print('All content numbers is',len(all_content))
count_num=1
for content in all_content:
if os.path.isdir(target_path+content):
all_sub_content=os.listdir(target_path+content)
if len(all_sub_content)!=361:
print(count_num,content,'sub content number is',len(all_sub_content))
count_num=count_num+1
(2)显示具体信息
import os
path1 = "J:/0mineOperation/20221024" # 输入一级文件夹地址
files1 = os.listdir(path1) # 读入一级文件夹
num1 = len(files1) # 统计一级文件夹中的二级文件夹个数
num2 = [] # 建立空列表
for i in range(num1): # 遍历所有二级文件夹
path2 = path1 + '//' + files1[i] # 某二级文件夹的路径
files2 = os.listdir(path2) # 读入二级文件夹
num2.append(len(files2)) # 二级文件夹中的文件个数
print("所有二级文件夹名:")
print(files1) # 打印二级文件夹名称
print("所有二级文件夹中的文件个数:")
print(num2) # 打印二级文件夹中的文件个数
print("对应输出:")
xinhua = dict(zip(files1, num2)) # 将二级文件夹名称和所含文件个数组合成字典
for key, value in xinhua.items(): # 将二级文件夹名称和所含文件个数对应输出
print('{key}:{value}'.format(key=key, value=value))
找到了!
(3)导出到excel文件