python遍历文件夹下所有文件和指定文件个数

本文介绍使用Python的os模块遍历文件夹的两种方法:一是利用os.walk()函数递归遍历目录及其子目录下的所有文件,二是结合os.listdir(), os.path.isdir(), os.path.isfile()函数实现相同功能。示例代码展示了如何统计特定类型的文件数量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

方法一 : 利用函数 os.walk()
os.walk() 会返回三元元组 (dirpath, dirnames, filenames)
dirpath : 根路径 (字符串)
dirnames : 路径下的所有目录名 (列表)
filenames : 路径下的所有非目录文件名 (列表)

其中目录名和文件名都是没有加上根路径的,所以需要完整路径时需要将目录名或文件名与根路径连接起来。
示例 :

import os

path = "D:\\code"

for dirpath, dirnames, filenames in os.walk(path):
    for filepath in filenames:
        print(os.path.join(dirpath, filepath))

赠: 遍历指定文件夹下指定文件的个数

import os

'''
dirpath : 根路径 (字符串)
dirnames : 路径下的所有目录名 (列表)
filenames : 路径下的所有非目录文件名 (列表)
'''

m, n = 0, 0

path = input('请输入要遍历的文件夹的绝对路径:')

for dirpath, dirnames, filenames in os.walk(path):

    # 遍历所有文件
    for file in filenames:

        # 获取文件后缀名
        index = file.rfind('.')

        # 遍历所有.java文件
        if file[index:] == '.java':
            m += 1

        # 遍历所有.xml文件
        if file[index:] == '.xml':
            n += 1
print('-----------------------------')
print('该文件夹下.java文件共有:%d个' % m)
print('-----------------------')
print('该文件夹下.xml 文件共有:%d个' % n)

方法二 : 利用函数 os.listdir(), os.path.isdir(), os.path.isfile()

os.listdir() 可以列出路径下所有文件和目录名,但是不包括当前目录, 上级目录 以及子目录下的文件.
os.path.isfile() 和 os.path.isdir() 判断当前路径是否为文件或目录

示例 :

import os


def list_all_files(src_dir):
    files = os.listdir(src_dir)  # 获取文件夹下所有文件及文件夹

    for file_name in files:
        # 拼接为绝对路径
        tmp_path = os.path.join(src_dir, file_name)

        # 判断是否是文件夹
        if os.path.isdir(tmp_path):
            print('文件夹: %s' % tmp_path)

            # 进入该文件夹进行遍历
            list_all_files(tmp_path)

        else:
            print('文件:%s' % tmp_path)


path = 'D:\\code'
list_all_files(path)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值