Python에서 설정 파일을 사용하는 베스트 프랙티스는 무엇입니까?
많은 인수를 수반하여 실행하는 명령줄 스크립트가 있습니다.저는 지금 논쟁이 너무 많은 지경에 이르렀고, 사전적인 형태로도 논쟁을 하고 싶습니다.
그 때문에, 간단하게 하기 위해서, 대신에 설정 파일을 사용해 스크립트를 실행하고 싶다고 생각하고 있습니다.파일 해석에 어떤 라이브러리를 사용해야 할지 잘 모르겠어요.이를 위한 베스트 프랙티스는 무엇입니까?물론 내가 직접 뭔가를 할 수는 있지만, 만약 이것을 위한 도서관이 있다면, 나는 열심히 귀를 기울인다.
몇 가지 '요구사항':
- 사용하는 대신
pickle
읽기 쉽고 편집하기 쉬운 스트레이트 텍스트 파일이었으면 합니다. - 사전과 같은 데이터를 추가할 수 있도록 하고 싶다.즉, 어떤 형태로든 네스팅이 지원되어야 한다.
단순화된 의사 파일:
truck:
color: blue
brand: ford
city: new york
cabriolet:
color: black
engine:
cylinders: 8
placement: mid
doors: 2
config.py과 같은 일반 Python 모듈을 사용할 수 있습니다.
truck = dict(
color = 'blue',
brand = 'ford',
)
city = 'new york'
cabriolet = dict(
color = 'black',
engine = dict(
cylinders = 8,
placement = 'mid',
),
doors = 2,
)
다음과 같이 사용합니다.
import config
print(config.truck['color'])
제공하신 설정 예는 실제로 유효한 YAML입니다.실제로 YAML은 고객의 요구를 모두 충족시키고 다수의 언어로 구현되어 매우 인간 친화적입니다.꼭 사용하시길 권해드립니다.PyYAML 프로젝트는 YAML을 구현하는 멋진 파이썬 모듈을 제공합니다.
yaml 모듈을 사용하는 방법은 매우 간단합니다.
import yaml
config = yaml.safe_load(open("path/to/config.yml"))
저는 이것이 가장 유용하고 사용하기 쉽다고 생각했습니다.https://wiki.python.org/moin/ConfigParserExamples
다음과 같은 "myfile.ini"를 생성하기만 하면 됩니다.
[SectionOne]
Status: Single
Name: Derek
Value: Yes
Age: 30
Single: True
[SectionTwo]
FavoriteColor=Green
[SectionThree]
FamilyName: Johnson
[Others]
Route: 66
그리고 다음과 같은 데이터를 가져옵니다.
>>> import ConfigParser
>>> Config = ConfigParser.ConfigParser()
>>> Config
<ConfigParser.ConfigParser instance at 0x00BA9B20>
>>> Config.read("myfile.ini")
['c:\\tomorrow.ini']
>>> Config.sections()
['Others', 'SectionThree', 'SectionOne', 'SectionTwo']
>>> Config.options('SectionOne')
['Status', 'Name', 'Value', 'Age', 'Single']
>>> Config.get('SectionOne', 'Status')
'Single'
Yaml 및 Json은 설정/구성 저장에 가장 단순하고 일반적으로 사용되는 파일 형식입니다.PyYaml을 사용하여 yaml을 구문 분석할 수 있습니다.Json은 이미 2.5부터 python의 일부입니다.Yaml은 Json의 슈퍼셋이다.Json은 이스케이프가 필요한 여러 줄 문자열을 제외한 대부분의 사용 사례를 해결합니다.Yaml이 이 사건들도 처리해.
>>> import json
>>> config = {'handler' : 'adminhandler.py', 'timeoutsec' : 5 }
>>> json.dump(config, open('/tmp/config.json', 'w'))
>>> json.load(open('/tmp/config.json'))
{u'handler': u'adminhandler.py', u'timeoutsec': 5}
언급URL : https://stackoverflow.com/questions/5055042/whats-the-best-practice-using-a-settings-file-in-python
'sourcecode' 카테고리의 다른 글
jsdoc에서 "object" 인수를 어떻게 설명합니까? (0) | 2022.09.04 |
---|---|
JUnit 4 테스트 스위트 (0) | 2022.09.04 |
RETURN SELECT Stored Procedure 후 MySQL 변수가 손상됨 (0) | 2022.09.04 |
파일을 python 콘솔에 로드하려면 어떻게 해야 하나요? (0) | 2022.09.04 |
2개의 키(키쌍, 값)로 해시맵을 작성하려면 어떻게 해야 합니까? (0) | 2022.09.03 |