在python中放置break和return语句

时间:2018-09-20 16:14:53

标签: python os.walk

我正在尝试编写一个函数,该函数返回在文件夹嵌套中找到的第一个文件的路径。到目前为止,我的是:

def dicom_name(rootDir):
    for dirName, subdirList, fileList in os.walk(rootDir):
        for f in fileList:
            print(dirName,f)
            return(os.path.join(dirName,f))
        break  

现在,如果我先运行然后再运行

dcm=dicom_name("test_dir")
print(dcm)

我看到“无”

我尝试了return和break语句的不同放置。做我想做的正确方法是什么?

1 个答案:

答案 0 :(得分:1)

您不需要break。 即使在该迭代中未找到文件,您的函数也总是在执行完外线程后返回。 删除break,它将起作用。

例如,如果您只有一个文件test_dir/a/b.txt, 在外螺纹的第一轮中,您有

dirName = test_dir 
subdirList = ['a'] 
fileList = []

第二次运行:

dirName = test_dir/a 
subdirList = [] 
fileList = ['b.txt']

因此您要继续操作,直到在fileList变量中找到某些内容为止。