如何遍历目录树并继续循环?

时间:2015-10-29 07:52:04

标签: python loops traversal

我正在尝试学习python。我正在尝试遍历目录并打印目录路径,从目录名称和文件名中提取的数字,但我的循环不会继续:它仅从第一个目录打印此信息。如何继续这个循环?

#!/usr/bin/python

import os
import re

#change directory
os.chdir('/Users/me/Pictures/')

for root, dirs, files in os.walk(os.getcwd()):
    for i in dirs: 
        val = re.search('\d+', i) 
        if val:
            a = os.path.join(root, i)
            for f in files:
                print a, val.group(0), f

1 个答案:

答案 0 :(得分:2)

您正在匹配子目录的名称,而不是当前目录的名称。如果您只有一级的嵌套目录,那么只要您进入这些子目录,if语句就会出错。

我不认为您理解在每次迭代中,root目录列表的路径,dirs目录中。

root匹配:

for root, dirs, files in os.walk(os.getcwd()):
    dirname = os.path.basename(root)
    val = re.search('\d+', dirname) 
    if val:
        for f in files:
            print a, val.group(0), f