Python零基础学习笔记(三十八)—— 递归方法、栈、队列模拟遍历目录

简介: 用递归方法遍历目录:使用到os模块,所以要先引入os模块处理文件:    核心是判断文件是否是目录文件,如果是目录文件就进行递归处理,直接将文件名打印出来下面是文件代码:import osdef getAllDir(path, sp = " "): fileList = os.

用递归方法遍历目录:

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

处理文件:

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

下面是文件代码:

import os
def 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 fileList
getAllDir(r"C:\Users\Administrator\PycharmProjects\untitled\day011")


栈方法:

import os
def 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 os
import collections
def 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")

相关文章
|
19天前
|
存储 C语言 Python
【Python】学习笔记day3
【Python】学习笔记day3
26 1
|
30天前
|
存储 并行计算 Java
Python读取.nc文件的方法与技术详解
本文介绍了Python中读取.nc(NetCDF)文件的两种方法:使用netCDF4和xarray库。netCDF4库通过`Dataset`函数打开文件,`variables`属性获取变量,再通过字典键读取数据。xarray库利用`open_dataset`打开文件,直接通过变量名访问数据。文中还涉及性能优化,如分块读取、使用Dask进行并行计算以及仅加载所需变量。注意文件路径、变量命名和数据类型,读取后记得关闭文件(netCDF4需显式关闭)。随着科学数据的增长,掌握高效处理.nc文件的技能至关重要。
108 0
|
16天前
|
Python
【python】爬楼梯—递归分析(超级详细)
【python】爬楼梯—递归分析(超级详细)
|
30天前
|
数据处理 Python
python进行二进制数据处理的方法
python进行二进制数据处理的方法
16 0
|
2天前
|
Python
python面型对象编程进阶(继承、多态、私有化、异常捕获、类属性和类方法)(上)
python面型对象编程进阶(继承、多态、私有化、异常捕获、类属性和类方法)(上)
23 0
|
2天前
|
索引 容器
06-python数据容器-list列表定义/list的10个常用操作/列表的遍历/使用列表取出偶数
06-python数据容器-list列表定义/list的10个常用操作/列表的遍历/使用列表取出偶数
|
8天前
|
机器学习/深度学习 人工智能 算法
|
8天前
|
安全 Python
python字典的内置方法
Python字典主要方法包括:`keys()`(返回所有键)、`values()`(返回所有值)、`items()`(返回所有键值对)、`get()`(安全取值,键不存在时返回默认值)、`setdefault()`(设置默认值)、`update()`(合并字典)、`pop()`(删除并返回值)、`clear()`(清空字典)、`copy()`(浅拷贝)、`fromkeys()`(新建字典并设置默认值)、`popitem()`(随机删除键值对)。
8 0
|
16天前
|
存储 Python
python基础篇: 详解 Python 字典类型内置方法
python基础篇: 详解 Python 字典类型内置方法
25 1
|
19天前
|
Java 测试技术 Python
Python开启线程和线程池的方法
Python开启线程和线程池的方法
13 0
Python开启线程和线程池的方法

热门文章

最新文章