2017-03-16 91 views
-1

我试着找到一个答案,但空来了。我尝试在Python中使用os.walk(),但即使我在目录中有文件,它也会返回空列表。文件夹结构为: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() 

但档案名称变量是空的。我究竟做错了什么?

编辑:更新的代码片段。

EDIT2:好的,我忘了粘贴此脚本的acutal结果:

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

您究竟如何运行代码? –

+1

你的代码并没有试图对'filenames'变量做任何事情。你究竟如何断定它是空的? – tripleee

+0

我以前试过,但现在我使用调试器。 – CePeeN

回答

-1

你从来没有给任何文件夹位置,你说的都是顶尖=文件夹,这是不够的,os.walk执行其职责。

os.walk(top ='Photos'),在此添加一些地址,它可以工作。

+0

我不确定你的意思。它适用于文件夹和子文件夹,它不会用文件名填充文件名变量。我添加了有问题的实际输出。 – CePeeN

0

确保您的脚本文件和文件夹Photos在同一目录下,或者你可以使用:

print __file__ 

让你的当前文件夹。

我想你正在使用错误的相对路径。你也可以尝试使用绝对路径。实际上,代码运行良好。

+0

他们在相同的文件夹,我的意思是,有FileUtils文件夹,其中照片和脚本位于。 – CePeeN

0

对不起,我不知道什么是错,但它实际上工作,对不起混乱。我的错。不知道调试器显示为空的原因。再次抱歉。