【代码 | 数据读取】多层文件夹下jpg提取汇总

 1、多层文件夹下jpg提取汇总

提取转移文件夹内所有.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文件

猜你喜欢

转载自blog.csdn.net/sinat_40759442/article/details/127527079