【问题标题】:os.walk thinks my directory contains only .DS_Store filesos.walk 认为我的目录只包含 .DS_Store 文件
【发布时间】:2016-03-23 01:52:53
【问题描述】:

这令人困惑!出于某种原因,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 个。)

【问题讨论】:

    标签: python os.walk


    【解决方案1】:

    代码使用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))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-07-05
      • 1970-01-01
      • 2019-02-05
      • 1970-01-01
      • 2017-08-05
      • 2023-04-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多