2017-09-18 41 views
0

我正在迭代文件位置的DataFrame。如果我找到了我想要的文件,然後嘗試解壓縮,然後嘗試重命名它。如果失敗了,我想繼續到數據框的下一行。問題是,如果我調用「continue」,那麼跳轉回主循環而不是跳回到先前的for循環,然後程序掛起。有什麼方法可以指定哪個for循環在錯誤的情況下回退?嘗試從數據框中讀取數據時,Python會繼續掛起

這裏是我的僞代碼:

for index, row in df.iterrows(): #if something fails I want to go back here 
    #get the file location  
    for file in location: #"continue" is taking me back to here which I don't want 
     #search for file 
     if file found: 
      file_found = True 
    if not file_found: 
     continue 
    else: 
     file_found = False 
    try: 
     #unzip file 
    except: 
     #could not unzip 
     continue 
    try: 
     #rename unzipped file 
    except: 
     try: 
      #try renaming a different way 
     except: 
      #could not rename file 
      continue  
+0

「break」聲明怎麼樣?從[docs](https://docs.python.org/2/tutorial/controlflow.html#break-and-continue-statements-and-else-clauses-on-loops):「break語句,就像C,打破了最內層的for或while循環。「 – davedwards

+0

感謝您的建議。我遇到了同樣的問題,python在前面執行而不是外部for循環。 – sparrow

+0

嗯,好的,我會嘗試使用您的代碼重現您的結果 – davedwards

回答

1

最簡單的解決辦法是使用break,其退出的封閉循環。

相關問題