Python 从匹配的下一行读取值

Python 从匹配的下一行读取值,python,Python,我试图从文件中获取晶格参数,如 系统名: lattice parameter A [a.u.] 8.069100000000 我必须从比赛的下一行中找到号码。我将脚本编写为: with open(sysname, "r") as sysinp: for line in sysinp: if line.startswith("lattice parameter A"): next(sysinp)

我试图从文件中获取晶格参数,如 系统名:

lattice parameter A  [a.u.] 
    8.069100000000
我必须从比赛的下一行中找到号码。我将脚本编写为:

   with open(sysname, "r") as sysinp:
        for line in sysinp:
            if line.startswith("lattice parameter A"):
                next(sysinp)
                print(line.strip())
我希望
next()
转到下一行,但不幸的是,这并没有发生
print()
正在打印匹配行

我在这里干什么?

这应该有帮助:

line = next(sysinp)
在代码中,您不使用
next()
读取的行,但仍然使用
循环的前一行,即匹配行

整个代码片段:

with open(sysname, "r") as sysinp:
    for line in sysinp:
        if line.startswith("lattice parameter A"):
            line = next(sysinp)
            print(line.strip())

您已获得下一行,但尚未为其分配任何内容。您需要使用
line=next(sysinp)
,而不仅仅是
next(sysinp)
。您也可以只使用
print(next(sysinp).strip())

您需要捕获下一行:

with open(sysname, "r") as sysinp:
    for line in sysinp:
        if line.startswith("lattice parameter A"):
            try:
                line = next(sysinp)
                print(line.strip())
            except StopIteration:
                # handle the case where there is no next line