首页 > 解决方案 > python中os.walk()的返回值是什么?

问题描述

我有一个这样的目录结构:

dir/
└── subdir

我的代码:

import os

for d in os.walk('dir'):
    print(d)

我得到输出:

('dir', ['subdir'], [])
('dir/subdir', [], [])

我的问题是那些尾随的 [ ] 是什么?

第一个元组中有 1,第二个元组中有 2.. 它让我感到困惑。

标签: outputos.walkempty-listpython-os

解决方案


值得查看 Python 文档以了解此类问题,因为它们往往具有非常可靠的文档:https ://docs.python.org/2/library/os.html#os.walk

通过自上而下或自下而上遍历树,在目录树中生成文件名。对于以目录top为根的树中的每个目录(包括top本身),它会产生一个 3-tuple (dirpath, dirnames, filenames)

所以它总是会返回一个三元组。

对于您的第一个目录“dir”,它包含一个名为“subdir”的目录,并且它不包含任何文件,因此文件名是一个空列表。

然后它有另一个子目录条目,即您的“目录/子目录”。'subdir' 下没有任何目录或文件,因此目录名和文件名都有空列表。关键是它总是返回一个三元组,最后两个元素总是列表,所以没有子目录或文件,它会返回空列表。


推荐阅读