我有一个文件是这样的:
%Labelinfo
string1
string2
%Labelinfo2
string3
string4
string5
我想创建一个字典,它的键是%Labelinfo的字符串,值是从一个Labelinfo到下一个Labelinfo的串接。基本上是这样:
{%Labelinfo:string1+string2,%Labelinfo:string2+string3+string4}
问题是两个“Labelinfo”行之间可以有任意数量的行。例如,在%Labelinfo到%Labelinfo2之间可以有5行。那么,在%Labelinfo2到%Labelinfo3之间可以是4行。在
但是,包含“Labelinfo”的行总是以相同的字符开头,例如%。在
我怎么解决这个问题?在
{“%Labelinfo2”:“string3+string4+string5”,“%Labelinfo”:“string1+string2”}
进口re
d={}
文本=打开('法斯塔.txt').read()
对于el in[x for x in重新分割(r'\s+',文本)如果x]:
打印(d)
{“%Labelinfo”:“string1string2”,“%Labelinfo2”:“string3string4string5”}
我是这样写的:
程序循环遍历文件中的每一行。检查该行是否为空,如果为空,则忽略它。如果不为空,则处理该行。任何开头带有
%
的都表示一个变量,所以让我们继续把它添加到字典中,并将其设置为一个变量current
。然后我们继续在键current
添加到字典中,直到下一个%
输出:
^{pr2}$注意:字典不强制执行错误,因此它们将是无序的;但仍然可以以相同的方式访问。而且,请注意,您的示例输出有点错误,您忘记在其中一个%Labelinfo之后输入
2
。在相关问题 更多 >
编程相关推荐