Python os.listdir()与os.walk()详解:遍历文件路径与子目录

版权申诉
5星 · 超过95%的资源 8 下载量 185 浏览量 更新于2024-09-15 收藏 209KB PDF 举报
在Python编程中,处理文件和目录路径是常见的需求。本文主要介绍了如何使用os.listdir()和os.walk()这两个函数来获取文件路径以及它们所包含的子目录。这两个函数在Python标准库os模块中非常实用,尤其是在处理文件系统结构时。 os.listdir()函数用于获取指定目录下的所有文件和子目录名称,其语法如下: ```python import os file_list = os.listdir(directory) ``` 其中,`directory`是你想要列出内容的路径。这个函数返回一个包含字符串的列表,这些字符串代表了目录中的项目名(包括文件和子目录)。 然而,如果你需要递归地遍历整个目录树并获取所有子目录及其内部的文件,os.walk()函数更为强大。这个函数会生成一个迭代器,可以逐层遍历目录,返回三元组:当前目录路径(root)、当前目录下的子目录列表(dirs)和当前目录下的文件列表(names)。这里有一个简单的例子: ```python import os def walk_directory(path): if not os.path.exists(path): return -1 for root, dirs, files in os.walk(path): for filename in files: print(os.path.join(root, filename)) # 获得完整文件路径 # 使用walk_directory函数 walk_directory("C:\\Users\\Administrator\\Desktop\\2017-9-1") ``` 在上述代码中,`os.walk()`的参数解释如下: - `top`:指定要开始遍历的根目录。 - `topdown`:默认为True,表示按层次结构顺序进行遍历(即先根目录,后子目录),如果设置为False,将按照相反的顺序(即先子目录,后根目录)。 - `onerror`:可选的错误处理函数,当遍历过程中遇到错误时,可以捕获并处理这些错误。 当你运行这段代码,它会打印出指定路径下的所有文件路径,包括子目录中的文件。这对于文件搜索、备份或分析文件系统结构非常有用。 需要注意的是,在Python 3.6及更高版本中,os.path.walk()已被弃用,因为它不如os.walk()灵活且易用。因此,推荐使用os.walk()函数来处理文件路径和目录操作。理解这两个函数的工作原理,并熟练运用它们,能大大提高你处理文件系统的效率和准确性。