python ConfigParser读取文件不存在

Cac*_*ing 20 python exception-handling exception configparser

import ConfigParser
config = ConfigParser.ConfigParser()
config.read('test.ini')
Run Code Online (Sandbox Code Playgroud)

这就是我们在Python中读取配置文件的方式.但如果'test.ini'不存在怎么办?为什么这个方法不会抛出异常?

如果文件不存在,如何使它抛出异常?

Nic*_*ich 18

您也可以明确地将其作为文件打开.

try:
    with open('test.ini') as f:
        config.readfp(f)
except IOError:
    raise MyError()
Run Code Online (Sandbox Code Playgroud)

编辑:添加了一个缺失的'

  • 这很有效.顺便说一下:`readfp()`现在已经过时了(至少在Python 3中).它现在称为`read_file()`. (4认同)

Ash*_*ary 16

来自文档:

如果不存在任何命名文件,则ConfigParser实例将包含空数据集.

如果您想要在找不到任何文件的情况下引发错误,那么您可以尝试:

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