如何用python统计一个路径下的文件总数

 我来答
tufeididi007
2017-11-05 · TA获得超过2125个赞
知道大有可为答主
回答量:2698
采纳率:76%
帮助的人:1246万
展开全部

刚好刚才写了一个

def get_dir_info(dir_path, deep=0, info=None):
    if info is None:
        info = {'deep': 0, 'deep_dir': '', 'file_num': 0, 'dir_num': 0}
    if deep > info['deep']:
        info['deep'] = deep
        info['deep_dir'] = dir_path
    file_list = os.listdir(dir_path)
    for file in file_list:
        file_path = os.path.join(dir_path, file)
        if os.path.isdir(file_path):
            info['dir_num'] += 1
            get_dir_info(file_path, deep=deep+1, info=info)
        else:
            info['file_num'] += 1
    if deep == 0:
        return info

if __name__ == '__main__':
    dir_path = "D:\\Tools\\WebStorm2016\\plugins"
    s = time.time()
    d = get_dir_info(dir_path)
    print("{}".format(time.time() - s))
    print(d)

# 所有的深度是基于给出的文件夹统计的
# deep_dir比较鸡肋, 因为如果有多个相同深度的文件夹就会替换掉只剩一个
# 可以自行去掉这个功能

# deep: 最深的层数
# deep_dir: 最深的路径名称
# dir_num: 文件夹数量
# file_num: 文件数量

'''
0.21001195907592773
{'deep': 12, 'deep_dir': 'D:\\Tools\\WebStorm2016\\plugins\\spy-js\\server\\node_modules\\istanbul\\node_modules\\resolve\\test\\resolver\\biz\\node_modules\\garply\\lib', 'file_num': 6325, 'dir_num': 1113}
'''
就烦条0o
推荐于2017-11-06 · 知道合伙人软件行家
就烦条0o
知道合伙人软件行家
采纳数:33315 获赞数:46492
从事多年系统运维,喜欢编写各种小程序和脚本。

向TA提问 私信TA
展开全部

代码:  

def file_count(dirname,filter_types=[]):

     '''Count the files in a directory includes its subfolder's files

        You can set the filter types to count specific types of file'''

     count=0

     filter_is_on=False

     if filter_types!=[]: filter_is_on=True

     for item in os.listdir(dirname):

         abs_item=os.path.join(dirname,item)

         #print item

         if os.path.isdir(abs_item):

             #Iteration for dir

             count+=file_count(abs_item,filter_types)

         elif os.path.isfile(abs_item):

             if filter_is_on:

                 #Get file's extension name

                 extname=os.path.splitext(abs_item)[1]

                 if extname in filter_types:

                     count+=1

             else:

                 count+=1

     return count

   


本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
扶德万澎
2020-05-10 · TA获得超过3万个赞
知道大有可为答主
回答量:1.1万
采纳率:27%
帮助的人:636万
展开全部
统计当前目录下总共多少文件和文件夹,命令
:
find
.
|wc
-l
得出来的数字-1就是了
如果只是统计当前目录下的文件,不统计子文件夹下的文件,那命令是
ls
-l
|wc
-l
得出来的数字-1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
郗任韦渟
2020-01-26 · TA获得超过2.9万个赞
知道大有可为答主
回答量:1.1万
采纳率:30%
帮助的人:803万
展开全部
统计当前目录下总共多少文件和文件夹,命令
:
find
.
|wc
-l
得出来的数字-1就是了
如果只是统计当前目录下的文件,不统计子文件夹下的文件,那命令是
ls
-l
|wc
-l
得出来的数字-1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式