복붙노트

[PYTHON] 파이썬에서 설정 파일을 사용하는 가장 좋은 방법은 무엇입니까? [닫은]

PYTHON

파이썬에서 설정 파일을 사용하는 가장 좋은 방법은 무엇입니까? [닫은]

나는 많은 인수를 가지고 실행하는 커맨드 라인 스크립트를 가지고있다. 나는 이제 내가 너무 많은 논점을 가지고 있고, 사전 형식으로 몇 가지 논증을 원한다.

그래서 사물을 단순화하기 위해 대신 설정 파일을 사용하여 스크립트를 실행하고 싶습니다. 필자는 파일을 파싱 할 때 어떤 라이브러리를 사용할 지 정말로 알지 못합니다. 이 작업을 수행하는 가장 좋은 방법은 무엇입니까? 나는 물론 나 자신을 무언가 망치질 수 있었지만 이것에 대한 도서관이 있다면 나는 모두 귀가 다.

몇 가지 '요구':

단순화 된 의사 예제 파일 :

truck:
    color: blue
    brand: ford
city: new york
cabriolet:
    color: black
    engine:
        cylinders: 8
        placement: mid
    doors: 2

해결법

  1. ==============================

    1.다음과 같이 일반적인 파이썬 모듈, config.py를 사용할 수 있습니다 :

    다음과 같이 일반적인 파이썬 모듈, config.py를 사용할 수 있습니다 :

    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']  
    
  2. ==============================

    2.제공된 샘플 구성은 실제로 유효한 YAML입니다. 사실, YAML은 모든 요구 사항을 충족시키고 많은 언어로 구현되며 매우 인간 친화적입니다. 나는 그것을 사용하는 것이 좋습니다. PyYAML 프로젝트는 YAML을 구현하는 훌륭한 파이썬 모듈을 제공한다.

    제공된 샘플 구성은 실제로 유효한 YAML입니다. 사실, YAML은 모든 요구 사항을 충족시키고 많은 언어로 구현되며 매우 인간 친화적입니다. 나는 그것을 사용하는 것이 좋습니다. PyYAML 프로젝트는 YAML을 구현하는 훌륭한 파이썬 모듈을 제공한다.

    yaml 모듈을 사용하는 것은 매우 간단합니다 :

    import yaml
    config = yaml.safe_load(open("path/to/config.yml"))
    
  3. ==============================

    3.나는 이것을 가장 유용하고 사용하기 쉬웠다. https://wiki.python.org/moin/ConfigParserExamples

    나는 이것을 가장 유용하고 사용하기 쉬웠다. 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'
    
  4. ==============================

    4.Yaml과 Json은 설정 / 구성을 저장하는 가장 간단하고 가장 일반적으로 사용되는 파일 형식입니다. PyYaml은 yaml을 구문 분석하는 데 사용할 수 있습니다. Json은 이미 2.5에서 파이썬의 일부입니다. Yaml은 Json의 수퍼 셋입니다. Json은 이스케이프가 필요한 여러 줄 문자열을 제외한 대부분의 사용 사례를 해결합니다. Yaml도 이러한 경우를 처리합니다.

    Yaml과 Json은 설정 / 구성을 저장하는 가장 간단하고 가장 일반적으로 사용되는 파일 형식입니다. PyYaml은 yaml을 구문 분석하는 데 사용할 수 있습니다. Json은 이미 2.5에서 파이썬의 일부입니다. 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}
    
  5. from https://stackoverflow.com/questions/5055042/whats-the-best-practice-using-a-settings-file-in-python by cc-by-sa and MIT license