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)
[managers]
ip = ["1.2.3.4"]
[workers]
ip = ["2.3.45.5", "3.5.6.7", "5.7.8.9"]
1.定义数据模型类并加载它。
import ipaddress
import typed_settings as ts
@ts.settings(frozen=True)
class Mangers:
ip = ts.option(converter=lambda l: [ipaddress.ip_address(i) for i in l])
@ts.settings(frozen=True)
class Workers:
ip = ts.option(converter=lambda l: [ipaddress.ip_address(i) for i in l])
managers_settings = ts.load(Mangers, appname="managers", config_files=["config.toml"])
workers_settings = ts.load(Workers, appname="workers", config_files=["config.toml"])
print(managers_settings)
print(workers_settings)
# Mangers(ip=[IPv4Address('1.2.3.4')])
# Workers(ip=[IPv4Address('2.3.45.5'), IPv4Address('3.5.6.7'), IPv4Address('5.7.8.9')])
3条答案
按热度按时间9avjhtql1#
如果按如下方式重新格式化数据文件,则可以使用
configparser
模块解析它。数据文件
样本使用情况
bgtovc5b2#
使用简单的迭代。
演示:
输出:
pcww981p3#
一个优雅的方法是使用
typed-settings
和ipaddress
。1.安装
typed-settings
:pip install typed-settings
.1.创建名为
config.toml
的toml
文件。1.定义数据模型类并加载它。