python 统计文件夹下的文件夹/某类型文件的数目
Posted Happier,
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 统计文件夹下的文件夹/某类型文件的数目相关的知识,希望对你有一定的参考价值。
用代码读取文件时,有时需要统计某文件夹下所有文件的数目,并读取指定数目的文件!我们通常使用python的os模块完成统计工作,具体方法如下:
1.统计某文件夹下的文件夹和文件的总个数(不包含文件夹的子文件夹和子文件)
可通过endswith函数筛选出指定类型的文件数目
import os
filePath = os.getcwd() # 获得当前文件夹的路径
num = 1
FileNum = 0
csvFileNum = 0
# os.listdir(filePath)会读取出当前文件夹下的文件夹和文件
for file in os.listdir(filePath):
FileNum += 1 # 统计当前文件夹下的文件夹(不包含子文件夹)和文件的总数
# 通过endswith(".csv")筛选出csv文件,筛选其它类型的文件,改变后缀名即可
if file.endswith(".csv"):
csvFileNum += 1 # 统计当前文件夹下csv类型文件的总数
print(f'-------文件夹下的文件夹和文件总数为:FileNum个--------')
# 可用len(os.listdir(filePath))直接统计总数
print(f'-------文件夹下的文件夹和文件总数为:len(os.listdir(filePath))个---------')
print(f'-------文件夹下的csv文件总数为:csvFileNum个---------')
2.统计某文件夹下的文件夹和文件的总个数(包含文件夹的子文件夹和子文件)
统计文件夹下的子文件夹数量: dir_count,不仅会统计一级子文件夹,还会统计二级、三级子文件夹依次类推,一级子文件夹若有一个子文件夹,会记作两个。
统计文件夹下的文件数量: file_count,不仅会统计文件夹下的文件,还会统计子文件夹下的文件
例如: 统计root文件夹下的文件夹个数, 目录结构为/root/dir1/sub_dir1/*.txt时,会记作dir1 和sub_dir1共2个文件夹。以此类推,若目录结构为/root/dir1/sub_dir1/sub_sub_dir1/*.txt时,会记作dir1 、sub_dir1和sub_sub_dir1共3个文件夹。
import os
filePath = os.getcwd() #获得当前文件夹的路径
dir_count = 0
file_count = 0
for root,dirs,files in os.walk(filePath): #遍历统计
for dir in dirs:
dir_count += 1 # 统计文件夹下的文件夹总个数
for _ in files:
file_count += 1 # 统计文件夹下的文件总个数
print ('dir_count ', dir_count) # 输出结果
print ('file_count ', file_count)
Linux统计某文件夹下文件的个数
ls -l |grep "^-"|wc -l
统计某文件夹下目录的个数
ls -l |grep "^d"|wc -l
统计文件夹下文件的个数,包括子文件夹里的
ls -lR|grep "^-"|wc -l
统计/imagedata/data/20161108目录(包含子目录)下的所有txt文件
ls -lR /imagedata/data/20161108|grep txt|wc -l 或者 ls -lR "/imagedata/data/20161108"|grep "txt"|wc -l
-------------------------------------------------------------------
说明:
统计文件夹下目录的个数,包括子文件夹里的
ls -lR|grep "^d"|wc -l
ls -lR
长列表输出该目录下文件信息(R代表子目录注意这里的文件,不同于一般的文件,可能是目录、链接、设备文件等)
grep "^-"
这里将长列表输出信息过滤一部分,只保留一般文件,如果只保留目录就是 ^d
wc -l
统计输出信息的行数,因为已经过滤得只剩一般文件了,所以统计结果就是一般文件信息的行数,又由于一行信息对应一个文件,所以也就是文件的个数。
---------------------------------------------------------------
如果只查看文件夹
ls -d 只能显示一个.
find -type d 可以看到子文件夹
ls -lF |grep / 或 ls -l |grep ‘^d‘ 只看当前目录下的文件夹,不包括往下的文件夹
以上是关于python 统计文件夹下的文件夹/某类型文件的数目的主要内容,如果未能解决你的问题,请参考以下文章