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 是文件