2013-08-06 13 views
11
import ConfigParser 
config = ConfigParser.ConfigParser() 
config.read('test.ini') 

これはPythonで設定ファイルを読み込む方法です。しかし、もし 'test.ini'が存在しなければどうでしょうか?なぜこのメソッドは例外をスローしませんか?python ConfigParserの読み取りファイルが存在しません

ファイルが存在しない場合、どのように例外をスローすることができますか? docsから

答えて

10

という名前のファイルがどれも存在しない場合は、ConfigParserインスタンスが空のデータセットを 含まれています。

あなたがファイルのいずれかが、あなたは試すことができ見つからない場合にはエラーが発生する場合:

files = ['test1.ini', 'test2.ini'] 
dataset = config.read(files) 
if len(dataset) != len(files): 
    raise ValueError, "Failed to open/find all files" 
+0

' を追加しましたか! – user3817250

12

あなたはまた、明示的にファイルとして開くことができます。

try: 
    with open('test.ini') as f: 
     config.readfp(f) 
except IOError: 
    raise MyError() 

EDITは: '(' test.ini) `それは` `config.read(ファイル)ではありません不足しているのはなぜ` config.readが

+2

これは機能しました。ちなみ: 'readfp()'は現在は廃止されています(少なくともPython 3では)。今は 'read_file()'と呼ばれています。 –