os.walk 认为我的目录只包含 .DS_Store 个文件

os.walk thinks my directory contains only .DS_Store files

这令人困惑!出于某种原因,os.walk 告诉我我所拥有的只是一个包含 .DS_Store 个文件的文件结构,这是不正确的。

alist = []

for root, directories, filenames in os.walk('/somedir/full/of/subdirs/and_PDFs'):
    somelist.append(os.path.join(root,filename))

那么,alist[0:5] 给我一个样本:

['.DS_Store',
 '/somedir/full/of/subdirs/and_PDFs/0008/.DS_Store',
 '/somedir/full/of/subdirs/and_PDFs/0008/18/.DS_Store',
 '/somedir/full/of/subdirs/and_PDFs/0027/.DS_Store',
 '/somedir/full/of/subdirs/and_PDFs/0027/41/.DS_Store']

我不知道为什么 os.walk 认为我只有 .DS_Store 个文件?

(我还要补充一下,整个alist都是这些,不只是前5个。)

代码使用的是 filename(可能在代码的前面某处定义),而不是 filenames。您需要迭代 filenames 来获取文件(如果您也想要目录名称,也需要迭代 directories

alist = []

for root, directories, filenames in os.walk('/somedir/full/of/subdirs/and_PDFs'):
    for fn in filenames:
        alist.append(os.path.join(root,fn))