2014-09-30 73 views
0

我的程序使用python寫入文件。一切順利,除非我已經運行該文件並保持文件打開,並拋出一個IOError:[Errno 13] Permission denied:'pathname'。處理Python IOError

我想知道從程序退出並啓動消息框向用戶解釋問題的最佳方式,指示關閉以前的文件進行覆蓋。

def myFunction(self): 
    with open(self.pathString, 'wb') as ofile: 
    writer = csv.writer(ofile, quoting=csv.QUOTE_NONE, delimiter='\t') 
    ... 
    if IOError: 
     QMessageBox.information(None, 'Information', 'A message') 
     return 
+1

請[編輯]你的問題併發布相關的代碼。不過,作爲一個快速回答,當打開文件時總是使用'with'上下文管理器 - 這樣當你退出處理循環時,它們總是被關閉。 – MattDMo 2014-09-30 19:16:07

回答

1

這是很容易:

try: 
    result = do_here_what_can_cause_IOError 
except IOError as e: 
    log.error('Error when trying to perform do_here_what_can_cause_IOError: %s', e) 
else: 
    use_the_result_here 

總之,捕捉任何一種異常的Python的兩罰全中,使用try /除/其它/終於

文檔here