Python 对目录的操作
				Python,目录,操作 
                                
                    2025-04-11 08:57:55 时间  
                                                一、递归遍历目录
<span class="hljs-comment"># 返回所有文件的绝对路径</span>
<span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">traverseDir</span><span class="hljs-params">(dirPath)</span>:</span>
    absPathList = []
    <span class="hljs-keyword">import</span> os
    filesList = os.listdir(dirPath)
    <span class="hljs-keyword">for</span> fileName <span class="hljs-keyword">in</span> filesList:
        absPath = os.path.join(dirPath, fileName)
        <span class="hljs-keyword">if</span> os.path.isdir(absPath):
            <span class="hljs-comment"># 目录</span>
            absPathList += traverseDir(absPath)
        <span class="hljs-keyword">else</span>:
            <span class="hljs-comment"># 文件</span>
            <span class="hljs-comment"># print(absPath)</span>
            absPathList.append(absPath)
    <span class="hljs-keyword">return</span> absPathList
absPathList = traverseDir(<span class="hljs-string">r"C:\Users\sunck\Desktop\file"</span>)
print(absPathList)
print(len(absPathList))
<span class="hljs-comment"># for absPath in absPathList:</span>
<span class="hljs-comment">#     print(absPath)</span>二、栈模拟递归遍历目录
<span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">traverseDir</span><span class="hljs-params">(dirPath)</span>:</span>
    <span class="hljs-keyword">import</span> os
    absPathList = []
    myStack = []
    myStack.append(dirPath)
    <span class="hljs-keyword">while</span> len(myStack) != <span class="hljs-number">0</span>:
        path = myStack.pop()
        fileList = os.listdir(path)
        <span class="hljs-keyword">for</span> fileName <span class="hljs-keyword">in</span> fileList:
            absPath = os.path.join(path, fileName)
            <span class="hljs-keyword">if</span> os.path.isdir(absPath):
                myStack.append(absPath)
            <span class="hljs-keyword">else</span>:
                absPathList.append(absPath)
    <span class="hljs-keyword">return</span> absPathList
absPathList = traverseDir(<span class="hljs-string">r"C:\Users\sunck\Desktop\file"</span>)
print(absPathList)
print(len(absPathList))三、队列模拟递归遍历目录
<span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">traverseDir</span><span class="hljs-params">(dirPath)</span>:</span>
    <span class="hljs-keyword">import</span> os
    <span class="hljs-keyword">from</span> collections <span class="hljs-keyword">import</span> deque
    absPathList = []
    q = deque([])
    q.append(dirPath)
    <span class="hljs-keyword">while</span> len(q) != <span class="hljs-number">0</span>:
        path = q.popleft()
        fileList = os.listdir(path)
        <span class="hljs-keyword">for</span> fileName <span class="hljs-keyword">in</span> fileList:
            absPath = os.path.join(path, fileName)
            <span class="hljs-keyword">if</span> os.path.isdir(absPath):
                q.append(absPath)
            <span class="hljs-keyword">else</span>:
                absPathList.append(absPath)
                <span class="hljs-comment"># yield absPath</span>
    <span class="hljs-keyword">return</span> absPathList
absPathList = traverseDir(<span class="hljs-string">r"C:\Users\sunck\Desktop\file"</span>)
print(absPathList)
print(len(absPathList))相关文章
- python中删除特定字符串
 - Python 更换国内pip源
 - Python基础语法[通俗易懂]
 - 工具推荐|利用python-cdo高效处理气象数据
 - Python 常用模块
 - Python之range()函数
 - Magic * in Python
 - 用Python画个生日蛋糕为朋友庆生
 - Python爬取抖音无水印版短视频
 - 「python」私有属性和私有方法(扩展知识)
 - Python求解两数之和[通俗易懂]
 - python经典小程序:猜数字游戏[通俗易懂]
 - python 函数def
 - python 变量与数据类型
 - Python 完美诠释"高内聚"概念的 IO 流 API 体系结构设计
 - 2022年最新Python大数据之Python基础【九】面向对象与继承
 - 简单的Python脚本,实现ssh登录配置路由器
 - Python 树表查找_千树万树梨花开,忽如一夜春风来(二叉排序树、平衡二叉树)
 - Python一键生成国庆渐变头像
 - python字符串编码及乱码解决方案