在python中读取配置文件

时间:2018-07-04 10:54:12

标签: python configuration

我想阅读以下配置文件,该文件具有为工作人员和管理人员定义的IP。我尝试了configparser模块,但它需要键值对。任何人都有任何想法使用python读取以下文件,我将很感激。

  

[经理]
    1.2.3.4
    [工人]
    2.3.45.5
    3.5.6.7
    5.7.8.9

文件可能具有随机数的IP。

2 个答案:

答案 0 :(得分:1)

如果按如下所示重新格式化数据文件,则可以使用configparser模块进行解析。您可以通过执行pip install configparser

进行安装

数据文件

[managers]
ip = 1.2.3.4
[workers]
ip = 2.3.45.5
     3.5.6.7
     5.7.8.9

样品用量

from configparser import ConfigParser
# from ConfigParser import ConfigParser # for python3 
data_file = 'tmp.txt'

config = ConfigParser()
config.read(data_file)

config.sections()
# ['managers', 'workers']

config['managers']['ip']
# '1.2.3.4'

config['workers']['ip']
#'2.3.45.5\n3.5.6.7\n5.7.8.9'

config['workers']['ip'].splitlines()
#['2.3.45.5', '3.5.6.7', '5.7.8.9']

答案 1 :(得分:0)

使用简单的迭代。

演示:

res = {}
temp = []
with open(filename, "r") as infile:
    for line in infile:                      #Iterate over each line
        line = line.strip()
        if line.startswith("["):             #Check if line is header
            line = line.strip("[]")
            res[line] = []                   #Create Key
            temp.append(line)
        else:
            res[temp[-1]].append(line)        #Append Values.
print(res)

输出:

{'workers': ['2.3.45.5', '3.5.6.7', '5.7.8.9'], 'managers': ['1.2.3.4']}