import configparser import ast def main(): conf = load_ini_conf( 'foo.ini' ) print( conf ) def load_ini_conf( ini_path ): config = configparser.ConfigParser(strict=False,allow_no_value=True) config.read( ini_path, encoding='utf-8') ret_datas = {} for section in config.sections(): if not section in ret_datas: ret_datas[section] = {} for conf in config.items( section ): try: ret_datas[section][ conf[0] ] = ast.literal_eval( conf[1] ) except: ret_datas[section][ conf[0] ] = conf[1] return ret_datas if __name__ == "__main__": main()
#patch condition
[original]
selector = [{"layout":"Model"},
{"dxftype":"INSERT","dxf_name":"平面ベース4"},
{"dxftype":"WPOLYLINE"}]
origin = ucs
position = [[0,0],[100,-100]]
[patch]
selector = [{"dxftype":"GROUP","dxf_name":"切欠き"}]
origin = bounding_box_left_down
position = [[200,300]]
[command]
command=cut
version=1.0
↑こう書くと、↓こう表示されます
{'original': {'selector': [{'layout': 'Model'}, {'dxftype': 'INSERT', 'dxf_name': '平面ベース4'}, {'dxftype': 'WPOLYLINE'}], 'origin': 'ucs', 'position': [[0, 0], [100, -100]] }, 'patch': {'selector': [{'dxftype': 'GROUP', 'dxf_name': '切欠き'}], 'origin': 'bounding_box_left_down', 'position': [[200, 300]] }, 'command': {'command': 'cut', 'version': 1.0} }