2017-04-14 38 views
0

PHP Yaconf可以读取.ini文件可以阅读蟒蛇像PHP Yaconf .ini文件

a=123 
b=45 
c.e.f=987 

输出像

['a' => 123] 
['b' => 45] 
['c' =>['e'=>['f'=>987]]] 

可以阅读的Python这样?

THX


嗨,所有的,可能是我没有描述的问题很好,对不起,那

首先,我没试过configparser,刚刚解析配置key=value。 我愿意配置像a.b.c=value,如:

[cache] 
redis.master.host='10.10.10.10' 
redis.master.port='6379' 
redis.master.auth='xxxx' 
redis.slave_1.host='10.10.10.12' 
redis.slave_1.port='6389' 
redis.slave_1.auth='xxxx' 

所以,我会读的配置一样

cfger.get('cache', 'redis') 

,并希望获得导致像

{'redis': { 
    'master': { 
      'host': '10.10.10.10', 
      'port': '6379', 
      'auth': 'xxxx', 
     }, 
    'slave_1': { 
      'host': '10.10.10.12', 
      'port': '6389', 
      'auth': 'xxxx', 
     }, 
    } 
} 

希望你能明白我的说

+0

它当然可以,如果你编程它这样做。你有没有尝试过可以向我们展示的东西? –

+0

@LysandrosNikolaou thx您的回复!我试过configparser。然而,它只是解析键=值,而不是key1.key2.key3 =值 –

+1

也许这可能是有用的(第4个答案)http://stackoverflow.com/questions/8884188/how-to-read-and-write-ini -file-with-python3 – Astrom

回答

0

是的,这是可能的。我不会那么深入。使用belove片段作为样板。

$ cat some.ini 
a=123 
b=45 
c.e.f=987 

... 
>>>h = {} 
>>>l = [] 
>>> with open('some.ini') as inifile: 
...  for lines in inifile.readlines(): 
...   k,v = lines.split('=') 
...   h[k] = int(v) 
...   # or l.append([lines.strip()]) 
>>> h 
{'a': 123, 'c.e.f': 987, 'b': 45} 

您唯一需要做的就是将'c.e.f'解析为嵌套字典。

+0

Thx for your reply!任何包或模块可以像PHP中的Yaconf一样吗? –