当我尝试使用configparser.read读取不存在的文件时,我认为它应该引发异常。它没有。它返回一个空列表。显然,我可以测试一个空列表并引发异常。如果configparser.read引发FileNotFound异常,在我看来更直观,更安全。
jeffs@jeffs-laptop:~/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 :(得分:1)
正如documentation明确指出的那样,您可以将任意数量的文件名传递给read
方法,它会默默地忽略那些无法打开的文件名。
如果您想在打开文件失败时看到异常,请尝试使用read_file
方法:
config.read_file(open("xyzzy.xyz", "r"))
答案 1 :(得分:0)
你是对的,我错了。我测试返回列表长度的解决方案并不是一个糟糕的解决方案,它可以解决没有文件存在的异常情况,但我的问题表明我没有很好地阅读文档。