【问题标题】:Checking For Next Line检查下一行
【发布时间】:2018-05-14 14:05:49
【问题描述】:

我正在尝试遍历我拥有的一系列文本文件,我想通过检查下一行的值来做到这一点。文本文件的输入如下所示:

Person1
(COUNT)|key
1|************

Person2
(COUNT)|key

// and so on

有些人可能有钥匙,有些人可能没有。我正在尝试编写一个循环来检查在Person1 示例之类的空格之前至少连续3 行(有键的人),其中每行以一个字符开头,我只想打印这些情况。

我当前的循环如下所示:

for line in input:
    if re.match(r'\S', line):
        line1 = line
        print(line1)
        if re.match(r'\S', input.next()):
            line2 = line
            print(line2)
            if re.match(r'\S', input.next()):
                line3 = line
                print(line3)

但是,我似乎无法让这个循环正确。似乎要打印三遍 Person ,但有时只打印密钥。在这里寻找任何可用的指导。

【问题讨论】:

    标签: python regex python-2.7 for-loop


    【解决方案1】:

    您可以使用enumerate 获取当前索引,也可以检查下一行。但是,当您到达文件末尾时,您需要注意这种情况。

    for i, line in enumerate(input):
       if i == len(input) - 2:
           break
       next_line = line[i+1]
    

    【讨论】:

    • 只需为该最终情况使用 if 语句,类似于if i == len(line): break
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-29
    • 1970-01-01
    • 1970-01-01
    • 2017-01-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多