[PYTHON] 어떻게 파이썬 3으로 INI 파일을 읽고 쓰는가?
PYTHON어떻게 파이썬 3으로 INI 파일을 읽고 쓰는가?
파이썬 3으로 INI 파일을 읽고 쓰고 작성해야합니다.
FILE.INI
default_path = "/path/name/"
default_file = "file.txt"
파이썬 파일 :
# Read file and and create if it not exists
config = iniFile( 'FILE.INI' )
# Get "default_path"
config.default_path
# Print (string)/path/name
print config.default_path
# Create or Update
config.append( 'default_path', 'var/shared/' )
config.append( 'default_message', 'Hey! help me!!' )
업데이트 된 파일 .INI
default_path = "var/shared/"
default_file = "file.txt"
default_message = "Hey! help me!!"
해결법
-
==============================
1.다음과 같이 시작할 수 있습니다.
다음과 같이 시작할 수 있습니다.
import configparser config = configparser.ConfigParser() config.read('FILE.INI') print(config['DEFAULT']['path']) # -> "/path/name/" config['DEFAULT']['path'] = '/var/shared/' # update config['DEFAULT']['default_message'] = 'Hey! help me!!' # create with open('FILE.INI', 'w') as configfile: # save config.write(configfile)
자세한 내용은 공식 configparser 문서를 참조하십시오.
-
==============================
2.다음은 완전한 읽기, 업데이트 및 쓰기 예제입니다.
다음은 완전한 읽기, 업데이트 및 쓰기 예제입니다.
입력 파일, test.ini
[section_a] string_val = hello bool_val = false int_val = 11 pi_val = 3.14
작업 코드.
try: from configparser import ConfigParser except ImportError: from ConfigParser import ConfigParser # ver. < 3.0 # instantiate config = ConfigParser() # parse existing file config.read('test.ini') # read values from a section string_val = config.get('section_a', 'string_val') bool_val = config.getboolean('section_a', 'bool_val') int_val = config.getint('section_a', 'int_val') float_val = config.getfloat('section_a', 'pi_val') # update existing value config.set('section_a', 'string_val', 'world') # add a new section and some values config.add_section('section_b') config.set('section_b', 'meal_val', 'spam') config.set('section_b', 'not_found_val', 404) # save to a file with open('test_update.ini', 'w') as configfile: config.write(configfile)
출력 파일, test_update.ini
[section_a] string_val = world bool_val = false int_val = 11 pi_val = 3.14 [section_b] meal_val = spam not_found_val = 404
원래 입력 파일은 그대로 유지됩니다.
-
==============================
3.http://docs.python.org/library/configparser.html
http://docs.python.org/library/configparser.html
이 경우 Python의 표준 라이브러리가 도움이 될 수 있습니다.
-
==============================
4.표준 ConfigParser는 일반적으로 config [ 'section_name'] [ 'key']를 통해 액세스해야합니다. 이것은 재미 있지 않습니다. 조금 수정하면 속성 액세스가 제공 될 수 있습니다.
표준 ConfigParser는 일반적으로 config [ 'section_name'] [ 'key']를 통해 액세스해야합니다. 이것은 재미 있지 않습니다. 조금 수정하면 속성 액세스가 제공 될 수 있습니다.
class AttrDict(dict): def __init__(self, *args, **kwargs): super(AttrDict, self).__init__(*args, **kwargs) self.__dict__ = self
AttrDict는 dict에서 파생 된 클래스이며 사전 키와 속성 액세스를 통해 액세스 할 수 있습니다. 즉 a.x는 [ 'x']
ConfigParser에서이 클래스를 사용할 수 있습니다.
config = configparser.ConfigParser(dict_type=AttrDict) config.read('application.ini')
이제 우리는 application.ini를 다음과 같이 얻습니다.
[general] key = value
같이
>>> config._sections.general.key 'value'
-
==============================
5.ConfigObj는 훨씬 더 많은 유연성을 제공하는 ConfigParser의 좋은 대안입니다 :
ConfigObj는 훨씬 더 많은 유연성을 제공하는 ConfigParser의 좋은 대안입니다 :
여기에는 몇 가지 단점이 있습니다.
from https://stackoverflow.com/questions/8884188/how-to-read-and-write-ini-file-with-python3 by cc-by-sa and MIT license
'PYTHON' 카테고리의 다른 글
[PYTHON] cx_freeze를 사용할 때 다른 파일을 어떻게 묶을 수 있습니까? (0) | 2018.10.10 |
---|---|
[PYTHON] 파이썬 3 웹 스크래핑에서 HTTP 오류 403 (0) | 2018.10.10 |
[PYTHON] 새로운 LIST에 두 개의 LIST 값 합계를 더한다. (0) | 2018.10.10 |
[PYTHON] 평면 목록에 중복 된 항목이 있는지 어떻게 확인합니까? (0) | 2018.10.10 |
[PYTHON] 어떻게 파이썬을 사용하여 SQLite에 행을 삽입 한 후 삽입 된 ID를 검색 할 수 있습니까? (0) | 2018.10.10 |