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_id
big_num
rec_num
0
150569726
5
6
1
163443323
2
6
2
177474079
5
6
3
68654281
2
0
4
178086221
0
4
data_final.head(10)
mer_id
big_num
rec_num
0
150569726
5
6
1
163443323
2
6
2
177474079
5
6
3
68654281
2
0
4
178086221
0
4
5
95463330
0
0
6
50333471
0
0
7
4984182
2
0
8
182596141
1
0
9
4438304
3
6
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_id
big_num
rec_num
count_0_0
0
150569726
5
6
1
1
163443323
2
6
1
2
177474079
5
6
1
3
68654281
2
0
1
4
178086221
0
4
1
5
95463330
0
0
0
6
50333471
0
0
0
7
4984182
2
0
1
8
182596141
1
0
1
9
4438304
3
6
1
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_id
big_num
rec_num
count_0_0
total
4
178086221
0
4
1
4
5
95463330
0
0
0
0
6
50333471
0
0
0
0
10
179178989
0
0
0
0
15
154048692
0
0
0
0
6.2 筛选出rec_num为0的 然后去检查一下
rec_0 = data_final[data_final['rec_num'] == 0]
print(rec_0.shape)
rec_0.head()
(226, 5)
mer_id
big_num
rec_num
count_0_0
total
3
68654281
2
0
1
2
5
95463330
0
0
0
0
6
50333471
0
0
0
0
7
4984182
2
0
1
2
8
182596141
1
0
1
1
检查思路:
通过将上述id与原有数据匹配,selenium到每一个网址,肉眼判断是否有漏的!
7 结论
数据概况:
总共有702个文件夹,即有702个商户。
有176个商户没有大图
有226个商户没有推荐菜
有140个商户没有大图也没有推荐菜
平均每个文件夹有6张图片,一个文件夹下图片最多的有11张!
python统计图片数量_Python | 统计每个文件夹各类图片个数相关推荐
- python软件名字_python怎么获得文件夹名字
匿名用户 1级 2017-07-27 回答 本文采用os.walk()和os.listdir()两种方法,获取指定文件夹下的文件名. 一.os.walk() 模块os中的walk()函数可以遍历文件夹 ...
- 管道/查明文件夹中图片个数
管道为一种通信方式 我们使用"|"连接两个命令,shell会将前后两个进程的输入输出用一个管道相连,以便达到进程间通信的目的. 管道本质上就是一个文件,前面的进程以写方式打开文件, ...
- python指定目录_python生成指定文件夹目录树
# -*- coding: utf-8 -*- import sys from pathlib import Path class DirectionTree(object): "" ...
- 统计文件夹中图片的个数
条件:有一个文件夹,里面不仅有子文件夹,还有一些其他格式的文件.子文件夹里面是图片, 现在需要统计每个子文件夹中图片的个数. import os path = 'D:/testin/common-mo ...
- python3 统计文件夹下文件(含文件夹)的个数
import osdef dircount(DIR):return len(os.listdir(DIR)) 经检验,统计结果不包含子文件夹中的个数,只统计至文件夹下的文件夹以及文件的个数.如果需要统 ...
- python创建文件夹和文件夹_Python快捷创建文件夹和文件详解
Python快捷创建文件夹和文件详解 自己做文件时发现 简单的反复操作十分浪费时间,于是想到了 使用Python,这个分享给大家,快捷高效办公. 1.创建文件夹 # 批量 创建文件夹 import ...
- python在当前目录创建txt文件-python根据txt文本批量创建文件夹
前言 前言:想写这个代码的原因是因为实习的时候需要根据表格名创建对应的文件夹,如果只是很少个数文件夹的话,ctrl+shift+n还可以接受吧,可是一次就要创建几百个文件夹,这就有点方方了.所以我写了 ...
- Python 连接FTP服务器并实现文件夹下载实例演示,python区分ftp目录下文件和文件夹方法,ftp目录下包含中文名问题处理
Python 连接 FTP 服务器并实现文件夹下载实例演示 第一章:连接 FTP 服务器并实现文件夹下载 ① 连接 FTP 服务器 ② 进入指定目录并显示文件信息 ③ 区分文件和文件夹名 ④ 文件夹名 ...
- python爬取图片然后保存在文件夹中
python爬取图片然后保存在文件夹中 直接上代码: import os import requests import redef getimg(soup,i):print('http:'+ soup ...
- 好用的python打包软件_Python打包exe文件方法汇总【4种】
title: Python打包exe文件方法 copyright: true top: 0 date: 2018-08-11 21:08:21 tags: 打包 categories: Python进 ...
最新文章
- 如何部署自动驾驶系统
- 皮一皮:论出门带物的重要性...
- 实现SQL Server 2012 镜像
- [75] Making arrangements
- 罗永浩签约抖音后,带货首秀或将献给小米,你看好这笔生意吗?
- 自动化测试--实现一套完全解耦的简单测试框架(二)
- WAS7.0安装补丁升级程序无法替换文件 java/docs/autorun.inf解决办法
- 2月20日 梯度下降、三种方式、三种超参数学习率冲量衰减因子、应用举例
- 第四季-专题2-U-Boot新手入门
- Firefox浏览Flash网页乱码的解决方案
- 微信分享ios 不显示图片和简介问题总结
- 「面向对象程序设计-C++」学习笔记(下半部分)
- java + selenium 实现QQ快速安全登录xx网站
- 人生的色彩,是五彩斑斓还是单调无味?
- Makefile 指南
- 高通 安卓 Uefi 的理解
- 二级域名配置以及nginx解析二级域名到html页面
- 美通企业日报 | 中国空调行业低增长将成常态;可穿戴设备市场价值将超500亿美元...
- Jetpack学习之Paging
- Java基础总结(初学者)