我正在尝试编写一个脚本,该脚本浏览目录并使用指定的标题信息标识DICOM文件。在找到符合条件的文件后,我想将文件的目录添加到列表中,如果它还没有。
import dicom
import os
import os.path
import re
param = "PatientID"
val = "7rAgWJ."
rootDir = "C:\\work\\SJM\\WRIX"
dirs = []
i = 0
for subdir, dirs, files in os.walk(rootDir, topdown = True):
for f in files:
try:
f = os.path.join(subdir, f)
ds = dicom.read_file(f)
attr = getattr(ds, param)
if attr == val:
cur = os.path.dirname(os.path.realpath(f))
if cur not in dirs:
dirs.append(cur);
我的问题是我的代码永远不会终止,因为我的外部for循环连续运行。循环遍历C:\ work \ SJM \ WRIX \中某个目录中的文件,但从不"继续前进"到下一个文件夹。
谢谢!
答案 0 :(得分:1)
您正在修改dirs
,os.walk
使用{{1}}来确定下一个要递归的目录。创建一个单独的变量来存储结果。