使用Python 3.6.2在Pycharm中打印下一行

时间:2017-08-23 23:28:21

标签: python python-3.x

如果前一行以某个字符串开头,我需要能够在打开的文本文件中打印下一行。 itertools方法没有完成我想要的。以下是我正在打印的文本示例:

以下是另一个主题:How to print next line in python

我想在以“密码”开头的任何行之后打印该行。 itertools islice方法似乎没有做任何事情,除非我错误地实现它,print(next(op))也没有。 (op是我的open(filename))的名称。

这是我的完整代码:

def nonblank_lines(f):
    nonempty_lines = []
    for l in f:
        line = l.rstrip()
        if line:
            yield line.lstrip()

with open("C:\\Users\\MyName\\Desktop\\BLRP.txt", "r+") as op:
    for line in nonblank_lines(op):
        if line.startswith("Computer Name") or line.startswith("ERROR") or line.startswith("ID"):
            print(line)
        elif line.startswith("Password"):
            ***print(next(op))***
            #What do I do here?
    op.close()

2 个答案:

答案 0 :(得分:0)

你正在寻找这个。干杯:

file = open("file","r+")
for line in file:
    if line.startswith("This"):
        print(file.readline())
file.close()

答案 1 :(得分:0)

with open("C:\\Users\\MyName\\Desktop\\BLRP.txt", "r+") as op:
    instance_of_generator = nonblank_lines(op)
    for line in instance_of_generator:
        if line.startswith("Computer Name") or line.startswith("ERROR") or line.startswith("ID"):
            print(line)
        elif line.startswith("Password"):
            print(next(instance_of_generator))