Python学习笔记(21)-目录遍历

简介: 本文目录1. 简介2. 实例

1. 简介

遍历一个目录下所有的文件夹和文件是非常有用的事情,在python中os模块提供了非常简单易行的遍历方法os.walk(path)。


另外一定要了解的一点是,os.walk(path)遍历有点“广度优先”的意思,也就是说在上一个os.walk没执行完之前,再运行os.walk会等待。


2. 实例

先看代码,注意ShowPathInfo函数是对一个目录进行处理,对该目录下的文件夹同样会递归调用ShowPathInfo,注意 print("*****")输出的时机表明了os.walk等待执行的特点。

#目录的遍历
#导入os模块
import os
#获取目录信息
print("请输入目录信息")
dir=input()
while os.path.exists(dir)==False:
    print("目录不存在,请重新输入")
    dir=input()
#对一个目录的处理函数
def ShowPathInfo(path):
    print("*****")
    for folder,subFolders,files in os.walk(path):
        print("\n==当前遍历目录:"+folder)
        for file in files:
            print("[文件]:"+file)
        for subFolder in subFolders:
            print("[文件夹]:"+subFolder)
            ShowPathInfo(subFolder)            
#主程序
print("==========遍历开始")
ShowPathInfo(dir)
print("==========遍历结束")

测试,根据****输出时机,看os.walk运行方式

请输入目录信息
C:\Users
==========遍历开始
*****
==当前遍历目录:C:\Users
[文件]:desktop.ini
[文件夹]:Administrator
*****
[文件夹]:All Users
*****
[文件夹]:Classic .NET AppPool
*****
[文件夹]:Default
*****
[文件夹]:Default User
*****
[文件夹]:DefaultAppPool
*****
[文件夹]:Public
*****
==当前遍历目录:C:\Users\Administrator
[文件]:.deliverycenter.installs
[文件]:.packettracer
[文件]:a.py
[文件]:mm.cfg
[文件]:NTUSER.DAT
[文件]:ntuser.dat.LOG1
[文件]:ntuser.dat.LOG2
[文件]:NTUSER.DAT{016888bd-6c6f-11de-8d1d-001e0bcde3ec}.TM.blf
[文件]:NTUSER.DAT{016888bd-6c6f-11de-8d1d-001e0bcde3ec}.TMContainer00000000000000000001.regtrans-ms
[文件]:NTUSER.DAT{016888bd-6c6f-11de-8d1d-001e0bcde3ec}.TMContainer00000000000000000002.regtrans-ms
[文件]:ntuser.ini
[文件]:ntuser.pol
[文件]:pdf.exe
[文件]:WebpageIcons.db
[文件夹]:.android
*****
[文件夹]:.eclipse
*****
[文件夹]:.idlerc
*****
[文件夹]:.IntelliJIdea2016.3
*****
[文件夹]:.m2
*****
[文件夹]:.p2
*****
[文件夹]:.VirtualBox
*****
[文件夹]:AppData
*****
[文件夹]:Application Data
*****
[文件夹]:Cisco Packet Tracer 6.0
相关文章
|
4天前
|
算法 定位技术 Python
震惊!Python 图结构竟然可以这样玩?DFS&BFS 遍历技巧大公开
在 Python 编程中,图是一种重要的数据结构,而深度优先搜索(DFS)和广度优先搜索(BFS)是遍历图的两种关键算法。本文将通过定义图的数据结构、实现 DFS 和 BFS 算法,并通过具体示例展示其应用,帮助读者深入理解这两种算法。DFS 适用于寻找路径和检查图连通性,而 BFS 适用于寻找最短路径。掌握这些技巧,可以更高效地解决与图相关的复杂问题。
15 2
|
8天前
|
Python
不容错过!Python中图的精妙表示与高效遍历策略,提升你的编程艺术感
本文介绍了Python中图的表示方法及遍历策略。图可通过邻接表或邻接矩阵表示,前者节省空间适合稀疏图,后者便于检查连接但占用更多空间。文章详细展示了邻接表和邻接矩阵的实现,并讲解了深度优先搜索(DFS)和广度优先搜索(BFS)的遍历方法,帮助读者掌握图的基本操作和应用技巧。
25 4
|
9天前
|
算法 Python
Python图论探索:从理论到实践,DFS与BFS遍历技巧让你秒变技术大牛
图论在数据结构与算法中占据重要地位,应用广泛。本文通过Python代码实现深度优先搜索(DFS)和广度优先搜索(BFS),帮助读者掌握图的遍历技巧。DFS沿路径深入搜索,BFS逐层向外扩展,两者各具优势。掌握这些技巧,为解决复杂问题打下坚实基础。
21 2
|
1月前
|
网络协议 Java Linux
PyAV学习笔记(一):PyAV简介、安装、基础操作、python获取RTSP(海康)的各种时间戳(rtp、dts、pts)
本文介绍了PyAV库,它是FFmpeg的Python绑定,提供了底层库的全部功能和控制。文章详细讲解了PyAV的安装过程,包括在Windows、Linux和ARM平台上的安装步骤,以及安装中可能遇到的错误和解决方法。此外,还解释了时间戳的概念,包括RTP、NTP、PTS和DTS,并提供了Python代码示例,展示如何获取RTSP流中的各种时间戳。最后,文章还提供了一些附录,包括Python通过NTP同步获取时间的方法和使用PyAV访问网络视频流的技巧。
181 4
PyAV学习笔记(一):PyAV简介、安装、基础操作、python获取RTSP(海康)的各种时间戳(rtp、dts、pts)
|
1月前
|
Python
Socket学习笔记(二):python通过socket实现客户端到服务器端的图片传输
使用Python的socket库实现客户端到服务器端的图片传输,包括客户端和服务器端的代码实现,以及传输结果的展示。
129 3
Socket学习笔记(二):python通过socket实现客户端到服务器端的图片传输
|
1月前
|
JSON 数据格式 Python
Socket学习笔记(一):python通过socket实现客户端到服务器端的文件传输
本文介绍了如何使用Python的socket模块实现客户端到服务器端的文件传输,包括客户端发送文件信息和内容,服务器端接收并保存文件的完整过程。
135 1
Socket学习笔记(一):python通过socket实现客户端到服务器端的文件传输
|
1月前
|
关系型数据库 MySQL 数据库
Mysql学习笔记(四):Python与Mysql交互--实现增删改查
如何使用Python与MySQL数据库进行交互,实现增删改查等基本操作的教程。
61 1
|
1月前
|
Ubuntu Linux Python
Ubuntu学习笔记(六):ubuntu切换Anaconda和系统自带Python
本文介绍了在Ubuntu系统中切换Anaconda和系统自带Python的方法。方法1涉及编辑~/.bashrc和/etc/profile文件,更新Anaconda的路径。方法2提供了详细的步骤指导,帮助用户在Anaconda和系统自带Python之间进行切换。
77 1
|
1月前
|
Python
Python实用记录(四):os模块-去后缀或者改后缀/指定目录下图片或者子目录图片写入txt/csv
本文介绍了如何使用Python的os模块来操作文件,包括更改文件后缀、分割文件路径和后缀、将指定目录下的所有图片写入txt文档,以及将指定目录下所有子目录中的图片写入csv文档,并为每个子目录分配一个标签。
16 1
|
1月前
|
编解码 UED Python
Python批量修改指定目录下图片的大小名文章
Python批量修改指定目录下图片的大小名文章
16 1