2016-11-11 28 views
0

ファイルを読み取るときに例外を制御しようとしていますが、問題があります。私はPythonの初心者です。私はまだ例外をキャッチして、私がアクセスしているファイルからテキストを読み続けることができません。これは私のコードです:例外の読み込みファイルのpython

import errno 
import sys 

class Read: 
    #FIXME do immutables this 2 const 
    ROUTE = "d:\Profiles\user\Desktop\\" 
    EXT = ".txt" 

    def setFileReaded(self, fileToRead): 
     content = "" 
     try: 
      infile = open(self.ROUTE+fileToRead+self.EXT) 
     except FileNotFoundError as error: 
      if error.errno == errno.ENOENT: 
       print ("File not found, please check the name and try again") 
      else: 
       raise 
      sys.exit() 
     with infile: 
      content = infile.read() 
      infile.close() 

     return content 

そして、私はそれを伝える別のクラスから:

turn on 
connect 
plug 
File not found, please check the name and try again 

そして、いや、次のファイルに進みます

read = Read() 
print(read.setFileReaded("verbs")) 
print(read.setFileReaded("object")) 
print(read.setFileReaded("sites")) 
print(read.setFileReaded("texts")) 

購入は、これだけを印刷します。どのようにプログラムはまだすべてのファイルを読むことができますか?

+0

プログラムを終了させたくない場合は、 'sys.exit()'を呼び出さないでください。 – Goyo

答えて

2

あなたがここで求めていることを正確に理解するのは少し難しいですが、私は試して指針を提供します。

sys.exit()は、Pythonスクリプトを正常に終了します。あなたのコードでは、FileNotFoundError例外が捕捉されたときに呼び出されます。スクリプトは終了するので、これ以降は何も実行されません。したがって、他のファイルは読み込まれません。

with open('myfile.txt') as f: content = f.read()

ファイルはwith後に自動的に閉じられます。

指摘するもう一つは、あなたがこのようにそれを開いたときにを必要とされていない、それを読んだ後、ファイルを閉じることですブロック。

+1

はい、そうです!それは私の問題を解決する、ありがとう! – benpay

関連する問題