configparser - Pythonプログラムのユーザーエディット設定を管理する
目次
しかし、あなたは好奇心旺盛かもしれません、どこで、どのようにそれらの構成を保存するには?
ここで紹介しますConfigParser , Python 3の標準ライブラリの一つです.Pythonアプリケーションの設定を保存するために使用されます.
ConfigParserは何ですか?🤔
ConfigParser Python 3の標準ライブラリ( Python 2では)
pip install configparser
) Pythonプログラムの基本設定言語を実装します.ConfigParserで使用されるファイル形式は
INI
これは古いバージョンのマイクロソフトWindowsで使用される形式と似ています.構成ファイルは、セクションに編成され、各セクションでは、構成データの名前の値のペアを含めることができます.セクション名は
[]
登場人物ペアは:
or =
. コメントの開始#
または;
.ConfigParser INIファイルはどのようなものですか?🧐
からの例を考えるofficial docs 完璧なものです.
[Simple Values]
key=value
spaces in keys=allowed
spaces in values=allowed as well
spaces around the delimiter = obviously
you can also use : to delimit keys from values
[All Values Are Strings]
values like this: 1000000
or this: 3.14159265359
are they treated as numbers? : no
integers, floats and booleans are held as: strings
can use the API to get converted values directly: true
[Multiline Values]
chorus: I'm a lumberjack, and I'm okay
I sleep all night and I work all day
[No Values]
key_without_value
empty string value here =
[You can use comments]
# like this
; or this
# By default only in an empty line.
# Inline comments can be harmful because they prevent users
# from using the delimiting characters as parts of values.
# That being said, this can be customized.
[Sections Can Be Indented]
can_values_be_as_well=True
does_that_mean_anything_special=False
purpose=formatting for readability
multiline_values=are
handled just fine as
long as they are indented
deeper than the first line
of a value
# Did I mention we can indent comments, too?
それはすべて正しいと言う?ConfigParserからのconfigの読み込み方法📄
これは私たちが使っているサンプルファイルです
configurations.ini
:[DEFAULT]
host=localhost
log=True
[MySQL]
PORT=4000
user=john
passwd=IDontwannatellyouhehe123
[Postgresql]
user=peter
PORT=3000
passwd=AnotherPasswd22223
まず、ConfigParserモジュールをインポートし、ConfigParserオブジェクトを作成し、INI
ファイルimport configparser
configs = configparser.ConfigParser()
configs.read('configurations.ini')
今、コンフィグはオブジェクトとして初期化されます.どのように値を設定できるかを見てみましょう.# Get a value from a section
configs['Postgresql']['user'] # returns: 'peter'
# Assign it to variable
user = configs['Postgresql']['user']
print(user) # returns: 'peter'
INIファイルにあるセクションをチェックするには、次のようにします.# List all sections in the INI file
configs.sections() # returns: ['MySQL', 'Postgresql']
# See specific section is in the INI file
'MySQL' in configs # returns: True
'NotExistingSection' in configs # returns: False
セクションのすべての値名を見るにはfor key in config['MySQL']:
print(key)
# Returns:
# port
# user
# passwd
# host
# log
セクションで値の辞書を生成することもできます.configs.items('MySQL') # returns: [('host', 'localhost'), ('log', '1'), ('port', '4000'), ('user', 'john'), ('passwd', 'IDontwannatellyouhehe123')]
今、あなたは混乱するかもしれませんMySQL
セクションhost
and log
値?そこにタイポはありますか.ConfigParserのマジックです.値は
DEFAULT
セクション(セクションタイトルが大文字小文字を区別することに注意してください).さて、あなたが気づくかもしれないもう一つの理由は
PORT
値は小文字で印刷されますか?値の名前は大文字小文字を区別しないので、すべての文字は小文字で格納されます.
ここでの最後の注意点:ConfigParser内のすべての値は文字列として格納されます.
したがって、他のデータ型である場合は手動で変換する必要があります.これには組み込み関数があります:
configs['MySQL'].get_boolean('log') # returns: True
configs['MySQL'].get_int('port') # returns: 4000
configs['MySQL'].get_float('port') # returns: 4000.0
ヒントget_boolean()
- このメソッドは大文字小文字を区別せず、' yes '/' no ', ' on '/' off ', ' true '/' false ', ' 1 '/' 0 'からboolean値を認識します.……さて、コンフィグを読む方法を知っています。✍
それはスーパー簡単なだけで、それらをする必要があります任意の文字列を割り当て、そして
configurations.ini
!ヒアゴーゴー😎:
# Assign the values you want
configs['MySQL']['user']='sam'
# Or you can use the `set` method
configs.set(section='Postgresql', option='log', value='False')
# Write it to the file
with open('configurations.ini', 'w') as configfile:
configs.write(configfile)
完了!今、あなたの設定はconfigurations.ini
.私が新しいセクションを望むか、セクションの名前を変えるならば、どうですか?
使えます
add_section
新しいセクションを作成するには、次のようにします.configs.add_section('New Section Name')
よく、セクションを直接名前を変更する方法はありません.しかし、あなたがすることは新しいセクションを作成して、新しいセクションにコピー値を作成して、古いセクションを削除することです.# Create a new section
configs.add_section('New Section')
# Copy values to the new section
for item in configs.items('MySQL'):
configs.set('New Section', item[0], item[1])
# Delete the new section
configs.remove_section('MySQL')
読書ありがとう!😎あなたがこの記事が役に立つとわかるならば、私にコーヒーを買うことを考えてください!
Reference
この問題について(configparser - Pythonプログラムのユーザーエディット設定を管理する), 我々は、より多くの情報をここで見つけました https://dev.to/cycool29/configparser-manage-user-editable-settings-for-your-python-programs-3a88テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol