# 深度遍历打印一个文件夹
def print_all_dir(dir):
# 判断dir是文件夹
if os.path.isdir(dir):
# 如果是文件夹,先打印该文件夹
print(dir)
# 再遍历
for next_dir in os.listdir(dir):
# 递归调用,针对该文件夹下的每一个文件/文件夹继续进行遍历打印操作,加上之前文件的路径
print_all_dir(os.path.join(dir, next_dir))
# 判断dir是文件
elif os.path.isfile(dir):
# 直接打印
print(dir)
# 如果既不是文件夹又不是文件,则该路径不存在,
else:
# 给出提示并结束函数
print("该路径%s不存在,请您仔细检查!" % dir)
return
一般来说,对于一个路径的操作要先判断是否存在,但是在递归里面每一次调用都会判断是否存在,效率会比较低,因此将判断放到else只需要判断第一次传进来的路径是否存在即可。
原文地址:https://www.cnblogs.com/lynnk1ng/p/12344128.html