这很混乱!出于某种原因,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))

关于python - os.walk认为我的目录仅包含.DS_Store文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36168472/

10-12 18:12