在 python 中放置 break 和 return 语句

placement of break and return statements in python

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

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)

我明白了"None"

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

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

例如,如果您只有一个文件 test_dir/a/b.txt, 在外线的第一个 运行 中你有

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

在第二个 运行:

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

所以你想继续,直到你在 fileList 变量中找到一些东西。