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字符串编码及乱码解决方案