2017-10-21 11 views
2

configparser.read를 사용하여 존재하지 않는 파일을 읽으려고하면 예외가 발생한다고 생각합니다. 그렇지 않습니다. 대신 빈 목록을 반환합니다. 분명히 빈 목록을 테스트하고 예외를 발생시킬 수 있습니다. configparser.read가 FileNotFound 예외를 발생시킨 경우보다 직관적이고 안전하다고 생각됩니다. python 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

당신 말이 맞아, 내가 잘못입니다. 리턴 된리스트의 길이를 테스트하는 나의 해결책은 나쁜 해결책이 아니며, 파일이 존재하지 않는 아웃 라이어 케이스를 해결할 것이다. 그러나 나의 질문은 필자가 문서를 잘 읽지 않는다는 것을 암시한다.