我有一个像这样的文件
[host1]
connection_type = mysql
database = master
port = 5432
host = aaa_host1
[host2]
connection_type = psql
database = master
port = 5432
host = bbb_host2
[host3]
connection_type = mysql
database = master
port = 5432
host = ccc_host3
[host4]
connection_type = mysql
database = master
port = 5432
client = aaa_host4
此文件与许多主机一起运行。我试图找到每个具有特定客户机代码(即aaa)的主机,并将这些节输出到一个文件中。我现在的代码如下
myhost = sys.argv[1]
stanzas = []
with open("/dir/to/file/file.txt") as f:
lines = f.read()
for entry in lines.split("\n\n"):
for line in entry:
if line.startswith(clientcode):
host = line.split("=")[-1]
if host.startswith(myhost):
stanzas.append(entry)
这显然是非常错误和丑陋的,有没有更好的方法用空行分割并解析我不知道的那一节?如果我在条目迭代中为for行添加了一个打印(行),那么它会垂直打印字母,这样就不会得到正确的循环
您可以使用Python的内置^{} ,因为您的文件是有效的
.ini
输出:
相关问题 更多 >
编程相关推荐