Python从特定的字符串行开始并编写?

时间:2019-06-27 13:01:02

标签: python python-2.7

我想匹配一个特定的字符串,一旦匹配,就开始在匹配的字符串之后写下一行。

从输出保存到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))

2 个答案:

答案 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