2010-08-06 2 views
22

파이썬 프로그램, 내장 모듈 (ConfigParser) 또는 독립 프로젝트 (ConfigObj)에 대한 설정 파일을 만드는 것이 더 낫습니다.더 나은 점은 ConfigObj 또는 ConfigParser입니다.

+1

또한 YAML도 괜찮습니까? – Apocryphon

+2

"더 나은"컨텍스트에 따라 다릅니다. 단순하고 복잡합니까? 어떤 종류의 설정? – detly

+3

Apocryphon : 질문을 편집하는 것과 같이 제안 할 수 있습니다 : "ConfigParser, ConfigObj, YAML의 con와 pro는 무엇입니까?" –

답변

4

지금까지 필자는 언제든지 ConfigParser를 사용해 보았습니다. 또한 포함 된 배터리로 써드 파티 라이브러리가 아닙니다.

비록 내가 인정해야하지만 ConfigObj 문서의 코드 샘플은 ConfigParser가 비교에서 실제로 멍청한 것처럼 보입니다. 무겁게 .ini 파일을 조작하는 스크립트의 경우, 나는 propably 선호합니다.

+0

동의합니다. ConfigParser에서 누락 된 기능은 2.7 이후에 포함 된 배터리 인 ArgParse에 있음을 발견했습니다. 파이썬 2.7을 사용할 수있는 곳에서는 ArgParse로 마이그레이션했습니다. – Hernan

17

최근 configparser에서 configobj로 전환했으며, 그렇게하게되어 매우 기쁩니다.

큰 차이점은 configobj의 validator입니다. 그것은 나를 매우 쉽고/간결하게 (1) 각 항목에 대한 유형과 허용 가능한 값을 정의하고, (2) 기본값을 설정하게합니다.

이 두 가지 기능은 많은 코드를 저장하고 잘못되는 것을 방지합니다. 또한 코드의 복잡성 측면에서 configobj를 사용하는 데 추가 오버 헤드가 발생하지 않으며 라이브러리가 아주 작습니다.

+0

기록을 위해 configobj에 대한 가장 좋은 소개가 [이 튜토리얼] (http://www.voidspace.org.uk/python/articles/configobj.shtml)이 될 수 있음을 발견했습니다.이 설명서는 약간 날짜가 있지만 기본 작업을 설명합니다 그리고 철학보다 더 나은 문서, imho. –

5

파이썬 버전에 따라이 질문에 답하는 것이 논쟁의 여지가 있지만 ConfigParser 및 ConfigObj를 간략하게 살펴본 후에 ConfigParser의 Python 3 버전 인 configparser를 사용하기로 결정했습니다. There’s also a backported version on PyPI.

ConfigParser는 나에게 성가신 것처럼 보였고 ConfigObj를 사용하면 목록에 난해한 문제가 발생했습니다 (필자는 실제로 길게 정렬되기 때문에 세로로 정렬 할 수 있기를 원합니다) 최신 버전이 2 년 이상 전에 발행 된 것은 도움이되지 않았습니다. 그러나 configparser의 API는 ConfigObj의 API (기능이 풍부한 것은 아니지만)로 보였습니다. Python 3로 전환하면 쉽게 기본 제공 버전으로 쉽게 전환 할 수 있습니다.

그건 그렇고, 그것은 지금까지 잘 작동합니다.

관련 문제