我想使用 Python 读取一个文本文件,搜索一个字符串并打印该匹配字符串与另一个字符串之间的所有行。
文本文件如下所示:
Text=variables.Job_SalesDispatch.CaptionNew
Tab=0
TabAlign=0
}
}
}
[UserVariables]
User1=@StJid;IF(fields.Fieldtype="Artikel.Gerät" , STR$(fields.id,0,0) , @StJid)
[Parameters]
[@Parameters]
{
[Parameters]
{
LL.ProjectDescription=? (default)
LL.SortOrderID=
}
}
[PageLayouts]
[@PageLayouts]
{
[PageLayouts]
{
[PageLayout]
{
DisplayName=
Condition=Page() = 1
SourceTray=0
现在我想打印所有“UserVariables”,所以只打印 [UserVariables] 和以方括号开头的下一行之间的行。在此示例中,这将是 [Parameters]。
到目前为止我所做的是:
with open("path/testfile.lst", encoding="utf8", errors="ignore") as file:
for line in file:
uservars = re.findall('\b(\w*UserVariables\w*)\b', line)
print (uservars)
什么只给我 []。
请您参考如下方法:
如果使用正则表达式对您来说不是强制性要求,您可以使用以下内容:
with open("path/testfile.lst", encoding="utf8", errors="ignore") as file:
inside_uservars = False
for line in file:
if inside_uservars:
if line.strip().startswith('['):
inside_uservars = False
else:
print(line)
if line.strip() == '[UserVariables]':
inside_uservars = True
