我有代碼,查找文件並打開它。默認情況下,它查找以#######
開頭的文件(每個#是一個數字)。
問題有時文件名是##-#####
和其他時間#####
。
我想找一個方法,如果文件無法找到試着尋找其他兩種方式的文件可以寫。
找不到文件時發生IOError異常。我想是有一個不同的聲明,上面寫着:
except File2:
Look for ##### in myfindFileFunction()
if file is still not found run except File3
except File3:
Look for ##-#### in myfindFileFuction()
except:
print "File not found"
我什麼不知道的是如何設置自定義異常這樣的工作方式,和/或是否有做一個更Python的方式這一共...
會建立一個模式或三個可能的文件名,並迭代思考,直到文件被發現工作更好?
根據目錄中的文件數/多少個,這可能比針對每個文件名的更復雜的正則表達式運行慢得多。 'myFindFileFunction()'意味着每個異常情況都會迭代給定目錄中的文件,導致最壞情況循環遍歷每個文件名n次(n是候選文件名模式的數量)。相比之下,即使在最壞的情況下,一個一刀切的基於正則表達式的解決方案應該只需遍歷目錄中的文件名。 – 2012-07-25 16:49:57