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

這是我們如何在Python中讀取配置文件。但是如果'test.ini'不存在呢?爲什麼這種方法不會拋出異常?python ConfigParser讀取文件不存在

如何讓文件不存在時拋出異常?

回答

10

docs

如果沒有指定的文件的存在,ConfigParser實例將 包含一個空的數據集。

如果你想提高的情況下,任何文件沒有找到,那麼你可以嘗試錯誤:

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

爲什麼'config.read(' test.ini')'難道不應該是'config.read(文件)'? – user3817250

12

你也可以明確地打開它作爲一個文件。

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

編輯:添加缺少的 '

+2

這工作。順便說一下:'readfp()'現在已經過時了(至少在Python 3中)。它現在被稱爲'read_file()'。 –