我有这样的目录结构:
dir/
└── subdir
我的代码:
import os
for d in os.walk('dir'):
print(d)
我得到输出:
('dir', ['subdir'], [])
('dir/subdir', [], [])
我的问题是,那些尾随的[]是什么?
第一个元组中有1个,第二个元组中有2个,这使我感到困惑。
答案 0 :(得分:0)
值得检查Python文档中的此类问题,因为它们往往具有非常扎实的文档:https://docs.python.org/2/library/os.html#os.walk
通过自上而下或自下而上遍历目录树来生成目录树中的文件名。对于根于目录 top 的树中的每个目录(包括 top 本身),它会生成一个三元组
(dirpath, dirnames, filenames)
。
因此它将始终返回一个三元组。
对于第一个目录“ dir”,它包含一个名为“ subdir”的目录,并且不包含任何文件,因此文件名为空列表。
然后它还有一个用于subdir的条目,即您的'dir / subdir'。 'subdir'下没有任何目录或文件,因此您有目录名和文件名的空列表。关键是它总是返回一个三元组,最后两个元素始终是列表,因此没有子目录或文件,它将返回空列表。