Python講座 Udemy Pythonista configpaser

Python学習【365日チャレンジ!】119日目のマスターU(@Udemy11)です。

今日から入門編を終了して、応用編に突入していきますが、さらに難しくなっていくので、Webを活用した自己学習が必要になっていきます。

これまでの学習は、Pythonのコードを書くために覚えておかないといけない基本的な内容だったので、レクチャーを繰り返し学習することでなんとなくこういう使い方をするということがわかりました。

応用編では、Pythonだけでなく、他のシステムと連携したり、Webサーバーやデータベースとのやり取りなど、より広い知識が必要になります。

すでに最低限の知識がある前提でレクチャーもすすめられるので、なんでも教えてくれると思っているいわゆる【くれくれ君】の状態では、この先の学習に進むのは難しいように感じます。

自分で調べて解決するというスタンスを持ちつつ、レクチャーをすすめ、どうしてもわからないことが出てくれば、過去のQAも参照しつつ質問するようにしましょう。

ということで、現在Python学習に活用している酒井さんの講座はこちら!

Udemy講師 酒井さん プログラミング Python

それでは、今日もPython学習に取り組みましょう!

昨日の復習

昨日は、入門編の集大成である対話アプリJarvisをパッケージ化して、Googleドライブで公開しました。

時間があれば、作ったJarvisを元に、他の質問をするバージョンを作ったり、少しカスタマイズしたJarvisを1から書いてみるとPythonのスキルが向上すること間違いなしです。

私は、一旦すべての講座を受講したあと、復習でいくつかのパターンのMVCモデルのコードを書きたいと思っています。

ということで、今日から応用編に入っていきます。

configparser

本日の学習はconfigparserです。

configというと、WindowsのコマンドでIPを調べるためのipconfigが思い浮かぶのですが、configの正体は、設定です。

そしてconfigparserは、設定をプログラムが扱えるデータ構造体にするためのモジュールです。

configparserモジュールには、設定用構造データであるiniファイルの読み書きを扱えるConfigParserクラスが用意されていて、iniファイルを読み込んで、Webサーバーやデータベースに接続するための値を取得することができます。

他のサービスやシステムとの連携のために欠かすことのできないモジュールと言えます。

iniファイルの書き込み

iniファイルのフォーマットは、ブラケットの角括弧[]でくくられたセクションが複数の【key】と【値】を持ち、複数ののセクションを記録することができます。

例:

[DEFAULT]
user = MasterU

[web_server]
host = localhost
port = 80

超簡単な一例ですが、上記のようなフォーマットの設定ファイル(config.ini)を作成したり、用意されているconfig.iniを読み込んで値を取得して利用するわけです。

上記の設定ファイルを作成するためのコードを書いてみましょう。

import configparser


config = configparser.ConfigParser()
config['DEFAULT'] = {
    'user': 'localhost'
}
config['web_server'] = {
    'host': 'localhost',
    'port': 80
}

with open('config.ini', 'w') as config_file:
    config.write(config_file)

このコードを実行すれば、同じ階層に上記の例と同じフォーマットのconfig.iniが作成されます。

Python講座 Udemy Pythonista configpaser

iniファイルの読み込み

次に、作成したconfig.iniを読み込んでみます。

import configparser

config = configparser.ConfigParser()
config.read('config.ini')
print(config['DEFAULT'])
print(config['web_server']['host'])
print(config['web_server']['port'])

出力結果

<Section: DEFAULT>
localhost
80

出力するためにprintを使っていますが、本来はhost = config['web_server']['host']のように変数に取得した値を代入して、Webサーバーにアクセスするためのコードで活用するなどの使い方をします。

あくまで一例

今回のhostportはあくまで設定ファイルを扱うための一例で示しているだけなので、連携するシステムなどによって、さまざまなデータを取り扱います。

共通したiniファイルのフォーマットを扱えるのがconfigparserモジュールですので、設定ファイルを読み込んで他のサービスと連携をするために使うということを憶えておきましょう。

これまでも酒井さんの講座では、ある程度自分で学習する必要がありましたが、応用編からは、さらに自分で学習するべき内容が増えているように感じています。

例えば、config.iniを何に使うのかということは、すでにわかってる前提で解説されています。

なので、レクチャーを受けつつ、わからないことは自分で調べる癖をつけていないと、内容が理解できなくなり、途中で挫折する原因になってしまいます。

Pythonの入門講座とはいえ、ここからは、より難しい内容になるので、気を引き締めて学習しましょう!

それでは、明日もGood Python!