-1
我正在嘗試創建一個函數,用於在給定的CT掃描目錄中提取一批患者。在圖像分割過程中,某些患者的掃描失敗,因此我正在循環查看列表,直到找到成功分割患者的「批號」。但是,當我運行它時,下面的代碼無限循環。我不明白爲什麼'休息'不會終止循環。while循環中嘗試/異常命令(Python)
任何想法,將不勝感激!:)
INPUT_FOLDER = "D:\CT\stage1\stage1"
patients = os.listdir(INPUT_FOLDER)
patients.sort()
#start, n_batch are given as parameters.
data = start #initialize index for list 'validation_patients'
valid_patient_list = [] #create an empty list for patient data with successful segmentation
while True: #iterate over variable 'data' until the list of valid patients is completed
try:
x = patients[data]
load_scan(INPUT_FOLDER + '\\' + x)
valid_patient_list.append(data)
if len(valid_patient_list) == n_batch: #escape while loop when the list length is equal to designated batch size
break
else: data += 1 #if the length of list is smaller than the desired batch number, go for the next patient
except IndexError:
data += 1 # go for the next data: do not add this one to the list
continue
#some more code below that deals with the valid_patient_list, but the loop runs infinitely..
我強烈建議你讓你的錯誤處理更加具體,並添加一些反饋 - 目前,你(或其他任何人)不可能知道究竟出了什麼問題。 – jonrsharpe
@jonrsharpe感謝您的評論。我添加了一條評論,使我的目的更加明確。我在這裏要做的是從數百個病人數據清單中挑選一批病人。我可以按順序迭代批次,但這不起作用,因爲有些患者的數據不起作用。我正在使用try/exception命令來處理這個問題。對不起,我對python比較陌生,所以我不確定這是否回答你的問題。 –
我沒有問一個問題。我建議你做更多的調試 - 參見例如https://ericlippert.com/2014/03/05/how-to-debug-small-programs/。 – jonrsharpe