这是目录结构
10
files
2009
2010
11
files
2007
2010
2006
我正在尝试获取文件中所有目录的完整路径名
import os
x = os.walk('.').next()[1]
print x # prints ['33', '18', '27', '39', '2', '62', '25']
for a in x:
y = os.walk(a).next()[1]
print y # prints ['files']
我尝试了嵌套,但是遇到了停止错误。
我打算做的是获得如下所示的内容,
['10/files/2009','10/files/2010','11/files/2007','11/files/2010','10/files/2006']
如何在python中完成?
答案 0 :(得分:1)
看起来您只想要嵌套最深的目录。
如果使用topdown=False
参数,您将获得深度优先遍历,这将在其父目录之前列出最深层嵌套的目录。
要过滤掉更高级别的目录, 您可以使用一个集来跟踪父目录,以便省略报告:
import os
def listdirs(path):
seen = set()
for root, dirs, files in os.walk(path, topdown=False):
if dirs:
parent = root
while parent:
seen.add(parent)
parent = os.path.dirname(parent)
for d in dirs:
d = os.path.join(root, d)
if d not in seen:
yield d
for d in listdirs('.'):
print(d)