web-dev-qa-db-ja.com

python ConfigParser読み取りファイルが存在しません

import ConfigParser
config = ConfigParser.ConfigParser()
config.read('test.ini')

これは、Pythonで構成ファイルを読み取る方法です。しかし、「test.ini」が存在しない場合はどうなりますか?このメソッドが例外をスローしないのはなぜですか?

ファイルが存在しない場合、どうすれば例外をスローさせることができますか?

22
Cacheing

docs から:

指定されたファイルが存在しない場合、ConfigParserインスタンスには空のデータセットが含まれます。

いずれかのファイルが見つからない場合にエラーを発生させたい場合は、次のことを試すことができます。

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

明示的にファイルとして開くこともできます。

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

編集:不足している 'を追加しました

18
Nick Humrich