2016-11-16 196 views
1

我覺得奇怪,我Python - with open()except(FileNotFoundError)?

with open(file, 'r') 

可以報告

FileNotFoundError: [Errno 2] 

,但我不能趕上,在某種程度上和繼續。我是否在這裏丟失了某些東西,或者真的希望在使用open()之前使用isfile()或類似的東西?

+0

[同時使用一個Python捕獲異常「與」聲明】的可能的複製(http://stackoverflow.com/questions/713794/catching-an-exception-while-using-a-python-with -聲明) –

回答

2

使用try/except處理異常

try: 
    with open("a.txt") as f : 
     print(f.readlines()) 
except Exception: 
    print('not found') 
    #continue if file not found 
0
from __future__ import with_statement 

try: 
    with open(file) as f : 
     print f.readlines() 
except EnvironmentError: # parent of IOError, OSError *and* WindowsError where available 
    print('oops') 

如果你想從公開徵集VS工作代碼中的錯誤不同的處理,你可以這樣做:

try: 
    f = open(file) 
except IOError: 
    print('error') 
else: 
    with f: 
     print(f.readlines()) 
0

如果您收到FileNotFound錯誤,問題很可能是文件名或文件路徑不正確。如果您嘗試讀取並寫入尚不存在的文件,請將模式從'r'更改爲'w+'。它還可以幫助文件之前寫出來的完整路徑,Unix用戶爲:

'/Users/paths/file' 

或者更好的是,我們os.path中讓你的路徑可以在其他操作系統上運行。

import os 
with open(os.path.join('/', 'Users', 'paths', 'file'), 'w+)