python:config parserを理解する

python

環境

VimMarkdownWordpressの作成時の備忘録です
– windows10
– python3.7.9
– configparser 5.0.2

install

pip install configparser     

実装

import

from configparser import ConfigParser     
config = ConfigParser()     

configファイルを作成する

config_path = 'your_file_path'     
def writeConfig():     
    config = ConfigParser()     
    config['core'] = {      
            'markdown_extension' : 'extra,nl2br,' ,     
            'blog_list_num'      : '100' ,     
            'set_filetype'      : 'markdown' ,     
            }     
    config['main'] = {      
            'user' : 'user_name' ,     
            'password' : 'wordpress_password' ,     
            'url' : 'https://your_homepage_url/xmlrpc.php' ,     
            }     
    with open( config_path , 'w' ) as config_text:     
        config.write( config_text )     

configファイルを読み込む

def readConfig( FILE = '' ):     
    config = ConfigParser()     
    if( FILE != '' ):     
        config.read( FILE )     

作成されるconfigファイル

##コメントアウト可能     
[core]     
markdown_extension = extra,nl2br,     
blog_list_num = 100     
set_filetype = markdown     

[main]     
user = user_name     
password = wordpress_password     
url = https://your_homepage_url/xmlrpc.php     

OSごとのhomeディレクトリの取得

##windows     
#チルダの変換まででそれ以降の / \ の 変換はしてくれない     
    root_path = os.path.expanduser("~")     
    #root_path = os.path.expanduser("~/you_want_file")     
    path_sep = ''     
    if( os.name == 'posix' ):     
        path_sep = '/'     
    else:     
        path_sep = "\\"     

セクション一覧取得

print( config.sections() )     
#['core', 'main']     

セクションの代入

blog_section = ConfigParser()     
blog_section = config[ 'main' ]     

要素の取得

config = ConfigParser()    
config.read(config_path )    

core_section = config[ 'main' ]    
print( core_section['url'] )    
print( config[ 'main' ][ 'url' ] )    
print( config.get( 'main' ,'url' ) )    

keyをすべて処理

for key in config[ 'main' ]:     
    print( key )     

keyとvalueをセットで返す

print( config.items( 'main' ))     
#[('markdown_extension', 'extra,nl2br,'), ('blog_list_num', '100'), ('set_filetype', 'markdown')]   

セクションが存在するか確かめる

if( config.has_section( 'main' ) ):   
    print('exists')   

参考

configparser — 設定ファイルのパーサー — Python 3.9.4 ドキュメント
設定ファイル (ConfigParser) | Python-izm