python 中 os.walk() 的 return 值是多少?

What are the return values of os.walk() in python?

我有这样的目录结构:

dir/
└── subdir

我的代码:

import os

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

我得到输出:

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

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

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

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

Generate the file names in a directory tree by walking the tree either top-down or bottom-up. For each directory in the tree rooted at directory top (including top itself), it yields a 3-tuple (dirpath, dirnames, filenames).

所以它总是return一个三元组。

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

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