python_day19_递归

文章介绍了如何使用Python的os模块进行递归遍历文件和目录,包括使用`os.listdir`获取路径下的内容,`os.path.isdir`判断是否为文件夹,以及`get_files`函数实现深度递归获取所有文件。
摘要由CSDN通过智能技术生成

拓展

import os


def test_os():
    # 列出路径下内容
    print(os.listdir("D:/阿里云"))
    # 指定路径是否为文件夹
    print(os.path.isdir("D:/阿里云"))
    # 指定路径是否存在
    print(os.path.exists("D:/阿里云"))

if __name__ == '__main__':
    test_os()

在这里插入图片描述

递归查文件

每次递归都返回一个列表,将过程文件列表合并后才能得到全部文件列

import os
def get_files(path):
    """
    从指定路径获取全部文件列表
    :param path: 判断路径
    :return: 文件列表
    """
    file_list = []
    if os.path.exists(path):
        for f in os.listdir(path):
            # 组装为路径
            new_path = path + "/" + f
            if os.path.isdir(new_path):
                # 此处说明为文件夹,递归执行,将结果列表继续合并
                # TODO 每次递归都返回一个列表,将过程文件列表合并后才能得到全部文件列表
                file_list += get_files(new_path)
            else:
                file_list.append(new_path)
    else:
        print(f"指定路径: {path} 不存在")
        return list()

    return file_list


if __name__ == '__main__':
    # 返回值为列表,需打印输出
    print(get_files("D:/test"))

在这里插入图片描述

小结

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值