我正在尝试使用 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 语句无法正确输出。
我的问题是:为什么 循环的其他消除了我的输出?
答案 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
。因此,您不需要自己浏览文件夹。