os.walk()不打印/访问文件

时间:2015-11-03 04:04:30

标签: python os.walk

我正在尝试使用 os.walk 来访问给定文件夹中的所有文件和所有子文件夹。起初,我的代码如下所示:

for root, dirs, files in os.walk("/home/DataScience"):   
    for dirName in dirs:
          print dirName

但是,上面的输出将文件变量放入列表中 - 我需要它来迭代列表中的每个对象。

所以我继续为循环添加一个

for root, dirs, files in os.walk("/home/DataScience"):   
    for dirName in dirs:
        for fileName in files:
            print dirName

然而,现在没有输出。出于某种原因,似乎放置额外的循环使得第4行的 print 语句无法正确输出。

我的问题是:为什么 循环的其他消除了我的输出?

2 个答案:

答案 0 :(得分:4)

目录和文件需要两个独立的循环:

$_SESSION['user']

答案 1 :(得分:0)

如果您只关心文件,而不关心目录中的文件夹,并且想要使用它们(比如打开它们),这就是您想要做的:

import os
for root, subdirs, files in os.walk(directory):
    for file in files:
        print(root + os.sep + file)
        # or whatever file operation you're interested in

subdirs或您正在调用的内容dirs只是root中的文件夹列表。在每一步中,os.walk()将进入root内的下一个子目录,从而生成root。因此,您不需要自己浏览文件夹。