我正在尝试编写一个函数,该函数返回在文件夹嵌套中找到的第一个文件的路径。到目前为止,我的是:
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语句的不同放置。做我想做的正确方法是什么?
答案 0 :(得分:1)
您不需要break
。
即使在该迭代中未找到文件,您的函数也总是在执行完外线程后返回。
删除break
,它将起作用。
例如,如果您只有一个文件test_dir/a/b.txt
,
在外螺纹的第一轮中,您有
dirName = test_dir
subdirList = ['a']
fileList = []
第二次运行:
dirName = test_dir/a
subdirList = []
fileList = ['b.txt']
因此您要继续操作,直到在fileList
变量中找到某些内容为止。