Python 中文件夹的遍历
之前没有留意过这个需求,今天在新浪的实习面试中没有答出来,思路有,但是不知道具体该用 os 下的什么函数。
回来一查,发现有两种方法:
- os.walk()
- 这个直接给出某一个根目录下所有文件以及文件夹的遍历结果,以生成器的形式给出,而且非常人性化的给出了 rootDir,files,dirs 三种分类,可以按需合成,打开或查看
- os.listdir()
- 这个就比较基础,列出某一个目录下所有的路径,不分文件还是文件夹,需要自己通过 os.path.isdir() 函数判断
- 此外,上述两种方法的区别在于,walk 先广度再深度,用 listdir 方法直接写的递归形式的遍历会是先深度再广度,当然也可以先广度再深度,这取决于实现细节,比较直接的方式是先深度再广度。
在我印象里,除了强大的自带 os 之外,还有一个库也挺好用:glob。
测试了一下,用 glob.glob(‘*’) 匹配的方法获取的全部路径与 os.listdir() 方法下获取到的有一点区别:前者不输出隐藏文件夹,后者会输出。
不知是该恭喜,还是该怎样,总之阅读到该文的,你是第 人。每一次刷新,都是不同的自己。