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)
热门文章
- 「2月6日」最高速度22.2M/S,2025年Nekoray每天更新免费节点订阅链接
- 领养宠物正规网站有哪些(领养宠物正规网站有哪些平台)
- 「3月4日」最高速度23M/S,2025年Nekoray每天更新免费节点订阅链接
- 比较好的狗粮品牌有哪些(比较好的狗粮牌子有哪些)
- 宠物粮食市场分析图表(宠物粮食市场前景)
- 动物防疫管理要点有哪些内容(动物防疫相关管理制度)
- 动物疫苗生产工艺有哪些(动物疫苗生产工艺有哪些种类)
- 「2月25日」最高速度21.6M/S,2025年Nekoray每天更新免费节点订阅链接
- 「1月13日」最高速度22.7M/S,2025年Nekoray每天更新免费节点订阅链接
- 抗高原反应的药有哪些药(抗高原反应的药有哪些氧剂)