python中os.walk()的返回值是什么?

时间:2018-11-30 05:14:59

标签: output os.walk empty-list python-os

我有这样的目录结构:

dir/
└── subdir

我的代码:

import os

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

我得到输出:

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

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

第一个元组中有1个,第二个元组中有2个,这使我感到困惑。

1 个答案:

答案 0 :(得分:0)

值得检查Python文档中的此类问题,因为它们往往具有非常扎实的文档:https://docs.python.org/2/library/os.html#os.walk

  

通过自上而下或自下而上遍历目录树来生成目录树中的文件名。对于根于目录 top 的树中的每个目录(包括 top 本身),它会生成一个三元组(dirpath, dirnames, filenames)

因此它将始终返回一个三元组。

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

然后它还有一个用于subdir的条目,即您的'dir / subdir'。 'subdir'下没有任何目录或文件,因此您有目录名和文件名的空列表。关键是它总是返回一个三元组,最后两个元素始终是列表,因此没有子目录或文件,它将返回空列表。