os.walk()不返回文件名

时间:2017-03-16 10:05:31

标签: python

我试图找到答案,但却空了。我尝试在Python中使用os.walk(),但即使我在目录中有文件,它也会返回空列表。文件夹结构是:

↳Photos
  ↳fold1
    ↳ file1.jpg
    ↳ file1.nef
  ↳fold2
    ↳subfold1
      ↳ file2.jpg
    ↳ file2.jpg
    ↳ file2.nef

我的代码现在非常简单(不介意现在创建dirs_path,它按预期工作):

class PhotosCleanup(object):
    def __init__(self):
        super(PhotosCleanup, self).__init__()

    def create_dirs_list(self):
        for root, directories, filenames in os.walk(top='Photos'):
            dirs_path = [os.path.join(root, dp) for dp in directories]
            print dirs_path
pc = PhotosCleanup()
pc.create_dirs_list()

但filenames变量为空。我做错了什么?

编辑:更新了代码段。

EDIT2:好的,我忘了粘贴这个脚本的实际结果:

['Photos\\fold1', 'Photos\\fold2']
['Photos\\fold1\\Obrobione']
[]
[]

2 个答案:

答案 0 :(得分:0)

确保您的脚本文件和Photos文件夹位于同一目录中,或者您可以使用:

print __file__

获取当前文件夹。

我认为您使用了错误的相对路径。您也可以尝试使用绝对路径。实际上,代码运行良好。

答案 1 :(得分:-1)

你从未给过任何文件夹位置,你说的只是top =文件夹,这对于os.walk来说是不够的。

os.walk(顶部='照片'),在此添加一些地址,它有效。