7:Python基础-OS模块和函数递归

1.给定文件路径,深层获取该路径下所有文件和文件夹,并甄别出文件与文件夹的不同,在输出结果中给与说明。

import os

def list_all_files(my_path=r'E:\python\Project1'):
    # 定义返回值列表
    all_dir_file = []
    # 先找到该路径的中的内容
    my_list=os.listdir(my_path)
    # 对所有文件和文件夹逐一判断,根据文件和文件夹类型不同,做不同处理
    for item in my_list:
        # 路径拼接,得到文件和文件夹路径
        item_path = os.path.join(my_path,item)
        # 如果是文件
        if os.path.isfile(item_path):
            file_item=item+' 是文件'
            # 将文件添加到返回列表中
            all_dir_file.append(file_item)
        # 如果是文件夹
        elif os.path.isdir(item_path):
            dir_item = item + ' 是文件夹'
            # 将文件夹添加到返回列表中
            all_dir_file.append(dir_item)
            # 发现文件夹非空,则进入递归函数,进一步计算子文件夹的内容
            if len(os.listdir(item_path))>0:
                # 将子文件夹内容累加到返回值all_dir_file中
                all_dir_file += list_all_files(item_path)


    # 迭代函数出口
    # 如果该路径非空,只返回该级路径的内容
    if len(my_list)>=1:
        return all_dir_file
    # 如果该路径内无内容,则结束迭代,返回None
    else:
        return None

# --------------------------调用函数-----------------------
input_path = r'E:\python\Project1'
for item in list_all_files(input_path):
    print(item)


#  结果如下:
# .idea 是文件夹
# misc.xml 是文件
# modules.xml 是文件
# Project1.iml 是文件
# workspace.xml 是文件
# day10_homework_function.py 是文件
# day11_os_recursion.py 是文件
# day4_homework_loop1.py 是文件
# day5_homework_list2.py 是文件
# day6_homework_strfun.py 是文件
# day7_homework_list.py 是文件
# day8_homework_dic.py 是文件
# day9_homework_function.py 是文件
# hello3.py 是文件
# LeetCode.py 是文件
# python_book 是文件夹
# 01 是文件夹
# fun1.py 是文件
# model2.py 是文件
# 03 是文件夹
# 3_1 是文件夹
# fun.py 是文件
# model.py 是文件
# __pycache__ 是文件夹
# fun.cpython-36.pyc 是文件
# __pycache__ 是文件夹
# hello3.cpython-36.pyc 是文件
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值