Python 对目录的操作
Python 操作 目录
2023-06-13 09:12:14 时间
一、递归遍历目录
<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操作ES数据库「建议收藏」
- python常见运维脚本_Python运维常用脚本[通俗易懂]
- python获取软件窗口句柄_python获取窗口句柄并将指定应用置顶
- 【说站】python OpenCV加法操作的实现
- python,java,c语言哪个好_小萌新
- Python串口通信案例
- eval在python中是什么意思_如何在Python中使用eval ?
- python简单使用grpc
- 利用Python操作Mysql数据库
- Python 自动化指南(繁琐工作自动化)第二版:六、字符串操作
- 详解MongoDB安装使用并实现Python操作数据库的步骤
- python实现将excel数据添加到mongodb详解编程语言
- python在windows下实现ping操作并接收返回信息详解编程语言
- Python网络编程——学习笔记详解编程语言
- 掌握Python访问MySQL的新技能(python访问mysql)
- Python装饰器详解
- Python简易操作MySQL入门教程(python操作mysql)
- python使用Python轻松操作Redis(redis-)
- Python操作Redis实现数据持久化(python操作redis)
- Python驱动Oracle数据库(python操作oracle)
- Linux 下 Python 升级:轻松完成升级操作(linux下升级python)
- Python中使用MySQL数据库的操作技巧(mysql_python)
- python操作日期和时间的方法
- python操作gmail实例