Python |
您所在的位置:网站首页 › 怎么看文件夹里有多少图片 › Python |
统计每个文件夹各类图片个数
1 背景2 整体思路3 读入所有文件夹4 读每个文件夹下面图片4.1 判断空文件夹有多少个
5 看每个文件夹平均有多少张图片6 数据筛选6.1 筛选出big_num为0的 然后去检查一下6.2 筛选出rec_num为0的 然后去检查一下
7 结论
1 背景
现在已经通过爬虫将所有商家首页的图片下载ok,但给导师汇报总的有个基本的结论吧,也就是说,多少文件夹没有图片,分为big和rec,两者任一为空有多少?均为空多少?平均每个文件夹有多少图片?这就需要去统计一波了! 2 整体思路 通过循环遍历每一个文件夹获取一个文件夹下面所有文件的名称,然后如果出现rec或者big分别进行计数,所以一开始定义为0每一个循环形成一个DataFrame 放到list 最后进行一个concat 大功告成 3 读入所有文件夹 import os all_folds = os.listdir('702个美团商户上传图片/') all_folds = [x for x in all_folds if '.' not in x] print(len(all_folds)) all_folds[:5] 702 ['150569726', '163443323', '177474079', '68654281', '178086221'] 4 读每个文件夹下面图片 import pandas as pd import time data_need = [] t0 = time.time() for i in range(len(all_folds)): # for i in range(0,5): print('正在统计第 %d 个文件夹' % (i+1)) # 定位每一个文件夹 path = all_folds[i] # 遍历文件夹所有文件内容 all_files = os.listdir(path) # 计数-big/rec big_num = 0 rec_num = 0 for j in all_files: if 'big' in j: big_num += 1 elif 'rec' in j: rec_num += 1 else: pass # 构建数据框 # print(big_num) # print(rec_num) y = pd.DataFrame({'mer_id': all_folds[i], 'big_num': [big_num], 'rec_num': [rec_num]}) # 加到全局的list里面 data_need.append(y) # 合并数据 data_final = pd.concat(data_need, axis=0) t1= time.time() print('所有文件夹统计完毕,花费时间为 %.2f s' % (t1 - t0)) 正在统计第 1 个文件夹 正在统计第 2 个文件夹 正在统计第 3 个文件夹 正在统计第 4 个文件夹 正在统计第 5 个文件夹 ...... 正在统计第 698 个文件夹 正在统计第 699 个文件夹 正在统计第 700 个文件夹 正在统计第 701 个文件夹 正在统计第 702 个文件夹 所有文件夹统计完毕,花费时间为 0.62 s data_final.index = range(len(data_final)) print(data_final.shape) data_final.head() (702, 3) mer_idbig_numrec_num01505697265611634433232621774740795636865428120417808622104 data_final.head(10) mer_idbig_numrec_num01505697265611634433232621774740795636865428120417808622104595463330006503334710074984182208182596141109443830436 4.1 判断空文件夹有多少个思路: 使用map函数(配合使用lambda匿名函数),先定义一个函数(如果两项为0 则返回0) def f(x,y): if x == y == 0: return 0 else: return 1 data_final['count_0_0'] = data_final.index.map(lambda x: f(data_final['big_num'][x], data_final['rec_num'][x])) data_final.head(10) mer_idbig_numrec_numcount_0_0015056972656111634433232612177474079561368654281201417808622104159546333000065033347100074984182201818259614110194438304361 df_0_0 = data_final[data_final['count_0_0']==0] print(df_0_0.shape) # 即140个双空! (140, 4) 5 看每个文件夹平均有多少张图片 data_final['total'] = data_final['big_num'] + data_final['rec_num'] data_final['total'].describe() count 702.000000 mean 6.200855 std 4.306827 min 0.000000 25% 2.000000 50% 8.000000 75% 11.000000 max 11.000000 Name: total, dtype: float64 6 数据筛选 6.1 筛选出big_num为0的 然后去检查一下 big_0 = data_final[data_final['big_num'] == 0] print(big_0.shape) big_0.head() (176, 5) mer_idbig_numrec_numcount_0_0total4178086221041459546333000006503334710000101791789890000151540486920000 6.2 筛选出rec_num为0的 然后去检查一下 rec_0 = data_final[data_final['rec_num'] == 0] print(rec_0.shape) rec_0.head() (226, 5) mer_idbig_numrec_numcount_0_0total36865428120125954633300000650333471000074984182201281825961411011检查思路: 通过将上述id与原有数据匹配,selenium到每一个网址,肉眼判断是否有漏的! 7 结论数据概况: 总共有702个文件夹,即有702个商户。有176个商户没有大图有226个商户没有推荐菜有140个商户没有大图也没有推荐菜平均每个文件夹有6张图片,一个文件夹下图片最多的有11张! |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |