os.walk方法,主要是用来遍历一个目录内各个子目录和子文件。
python的定义格式如下:
def walk(top, topdown=True, onerror=None, followlinks=False):
top参数,是要遍历的目录。
topdown参数,为True的时候,优先遍历top目录。
剩下两个函数我也没搞懂。。。。
示例,目录结构如下:
代码如下:
import os path = '/cx/pyfolder/testfolder/' file_loc = os.walk(path) for path, dir, file in file_loc: print("遍历一次:\n"+"path是:{}".format(path), "dir是:{}".format(dir), "file是:{}".format(file))
运行之后,输出结果为:
可以看到,第一次遍历的是传入的path路径,就是testfolder这个文件夹,并返回了testfolder路径、testfolder下的子文件夹列表、testfolder下的文件列表,第二次遍历的是“1”这个给文件夹,并返回了“1”下面的文件夹列表和文件列表,第第三遍遍历的是“2”这个文件夹,并返回了路径、子文件夹列表,因为没有所以返回为空,文件列表。
下面把topdown这个参数传值为False:
import os path = '/cx/pyfolder/testfolder/' file_loc = os.walk(path,topdown=False) for path, dir, file in file_loc: print("遍历一次:\n"+"path是:{}".format(path), "dir是:{}".format(dir), "file是:{}".format(file))
打印结果:
可以发现,优先遍历的是“2”这个文件夹,最后才遍历“testfolder”这个文件夹。
如果想获取各个文件夹下文件的路径,可以这样:
import os path = '/cx/pyfolder/testfolder/' file_loc = os.walk(path) file_list = [] for path, dir, file in file_loc: print("遍历一次:\n"+"path是:{}".format(path), "dir是:{}".format(dir), "file是:{}".format(file)) for f in file: file_path = os.path.join(path, f) # 拼接路径和文件名称 file_list.append(file_path) print(file_list)
要获取指定后缀名的文件:
import os path = '/cx/pyfolder/testfolder/' file_loc = os.walk(path) file_list = [] for path, dir, file in file_loc: print("遍历一次:\n"+"path是:{}".format(path), "dir是:{}".format(dir), "file是:{}".format(file)) for f in file: if f.endswith(".txt"): # 判断是否以.txt结尾 file_list.append(f) print(file_list)
热门文章
- C/C++ 缓冲区问题、计时循环和基于范围的for循环
- React功能篇 – 使用react-i18next进行国际化
- 属羊的人养猫对财运有好处吗(属羊的养猫好吗风水说法)
- 狗狗疫苗自己打可以办狗证吗(狗狗疫苗自己打可以办狗证吗多少钱)
- 动物预防疾病控制中心可以打疫苗吗多少钱(动物疫控中心可以打疫苗吗)
- 「3月22日」最高速度20.7M/S,2025年Shadowrocket/Clash/V2ray/SSR每天更新免费订阅地址分享
- os模块,os.walk()方法解释与使用
- 「3月13日」最高速度18.2M/S,2025年V2ray/SSR/Clash/Shadowrocket每天更新免费订阅地址分享
- YARN线上动态资源调优
- @Transactional 详解