我想匹配一个特定的字符串,一旦匹配,就开始在匹配的字符串之后写下一行。
从输出保存到x变量中我要匹配“当前配置”,然后写入,然后从下一行开始写入。
这里有示例输出字符串。
show run
Building configuration...
Current configuration : 1505 bytes
!
Content1
Content1
!
Content2
Content2
一次匹配写入,但从下一行开始。这是目标输出。
!
Content1
Content1
!
Content2
Content2
示例配置(但字符串for且不匹配):
str = """show run
Building configuration...
Current configuration : 1505 bytes
!
Content1
Content1
!
Content2
Content2"""
with open('test.txt', 'w') as x:
print str
if "Current configuration" in str:
x.writelines(itertools.islice(str, 4, None))
答案 0 :(得分:0)
itertools.islice
适用于字符串的字符,而不适用于行。因此,您需要将文本分成几行:
x.write("\n".join(itertools.islice(str.split("\n"), 4, None)))
答案 1 :(得分:0)
我将文本分成几行,然后与for
一起使用enumerate()
循环来查找文本行。在那之后,我会写剩下的文字。
text = """show run
Building configuration...
Current configuration : 1505 bytes
!
Content1
Content1
!
Content2
Content2"""
lines = text.split('\n')
for number, line in enumerate(lines): # get line and its number
if "Current configuration" in line:
print(number, '>', line)
rest_text = '\n'.join(lines[idx+1:]) # join lines in one text
with open('test.txt', 'w') as x:
x.write(rest_text)
break # exit `for` loop