2017-10-21 55 views
2

当我尝试使用configparser.read读取一个不存在的文件不会产生异常,我认为它应该抛出异常。它没有。它将返回一个空列表。显然,我可以测试一个空列表并引发异常。它只是在我看来,更直观,更安全,如果configparser.read提出了一个FileNotFound例外。蟒蛇3 configparser.read()给出一个不存在的文件

[email protected]:~/nbmdt (blue-sky)*$ python3.6 
Python 3.6.2 (default, Oct 2 2017, 16:51:32) [GCC 7.2.1 20170915 (Red Hat 7.2.1-2)] on linux 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import configparser 
>>> config=configparser.ConfigParser() 
>>> config.read("xyzzy.xyz") 
[] 
>>> config.read("nbmdt.ini") 
['nbmdt.ini'] 
>>> 

谢谢

+0

该文档解释说,这是这样,你可以看看在几个不同的地方一个配置文件:https://docs.python.org/2/library/configparser.html#ConfigParser.RawConfigParser.read。我想他们可能会抛出异常,如果没有发现。 – fdsa

回答

1

你作为documentation清楚,你可以通过任何数量的文件名的方法read,并且它将忽略无法打开的。

如果你想看到未能打开文件的异常,请尝试read_file方法代替:

config.read_file(open("xyzzy.xyz", "r")) 
0

你是对的,我错了。我的测试列表的长度的解决方案返回是个不错的解决方案,这将解决该异常情况下没有任何文件的存在,但我的问题表明,我没有做的阅读文档一份好工作。