博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python零基础学习笔记(三十八)—— 递归方法、栈、队列模拟遍历目录 ...
阅读量:6306 次
发布时间:2019-06-22

本文共 1623 字,大约阅读时间需要 5 分钟。

用递归方法遍历目录:

使用到os模块,所以要先引入os模块

处理文件:

    核心是判断文件是否是目录文件,如果是目录文件就进行递归处理,直接将文件名打印出来

下面是文件代码:

import osdef getAllDir(path, sp = " "):    fileList = os.listdir(path)    #处理每一个文件    sp += "    "    for fileName in fileList:        #判断是否是路径(用绝对路径)        absFliePath = os.path.join(path, fileName)        if os.path.isdir(absFliePath):            print(sp + "目录:", fileName)            #递归调用            getAllDir(absFliePath, sp)        else:            print(sp + "普通文件", fileName)    return fileListgetAllDir(r"C:\Users\Administrator\PycharmProjects\untitled\day011")

栈方法:

import osdef getAllDirDE(path):    stack = []    stack.append(path)    #处理栈,当栈为空的时候结束循环    while len(stack) != 0:        dirPath = stack.pop()        fileDir = os.listdir(dirPath)        for fileName in fileDir:            fileAbsPath = os.path.join(dirPath, fileName)            if os.path.isdir(fileAbsPath):                print("目录:"+ fileName)                stack.append(fileAbsPath)            else:                print("普通文件:", fileName)getAllDirDE(r"C:\Users\Administrator\PycharmProjects\untitled\day011")
队列方法:
import osimport collectionsdef getAllDir(path):    queue = collections.deque()    #进队    queue.append(path)    while len(queue) != 0:        dirPath = queue.popleft()        fileList = os.listdir(dirPath)        for fileName in fileList:            fileAbsPath = os.path.join(dirPath, fileName)            if os.path.isdir(fileAbsPath):                print("目录:"+fileName)                queue.append(fileAbsPath)            else:                print("文件:"+fileName)getAllDir(r"C:\Users\Administrator\PycharmProjects\untitled\day011")

转载地址:http://yhixa.baihongyu.com/

你可能感兴趣的文章
DNS原理及其解析过程
查看>>
记录自写AFNetWorking封装类
查看>>
没想到cnblog也有月经贴,其实C#值不值钱不重要。
查看>>
【转】LUA内存分析
查看>>
springboot使用schedule定时任务
查看>>
[转] Entity Framework Query Samples for PostgreSQL
查看>>
XDUOJ 1115
查看>>
PHP学习(四)---PHP与数据库MySql
查看>>
模版方法模式--实现的capp流程创建与管理
查看>>
软件需求分析的重要性
查看>>
eclipse的scala环境搭建
查看>>
UVA465:Overflow
查看>>
HTML5-placeholder属性
查看>>
Android选择本地图片过大程序停止的经历
查看>>
poj 2187:Beauty Contest(旋转卡壳)
查看>>
《Flask Web开发》里的坑
查看>>
Python-库安装
查看>>
Git笔记
查看>>
普通人如何从平庸到优秀,在到卓越
查看>>
SLAM数据集
查看>>