读取行直到找到特定字符

时间:2018-04-12 12:26:55

标签: python filereader

我正在尝试读取一个文件(读取此文件中的每一行,包括字母,数字和字符)。脚本需要一般工作,文件类似但有一些变化。

现在它在找到如下所示的行时读取:“** HWCOLOR COMP 1066 30”。我需要脚本读取所有行,直到找到“** HW”。下面的脚本正在解释第一个问题。

如何编写脚本来读取文件,直到找到“** HW”并停在那里?

我试图用** HW“替换'** HWCOLOR COMP 1066 30”,但它不起作用,因为所有字符都不匹配。

data = [] 

with open('valvebody_nodes_rec.txt') as f:
    # Skips text before the beginning of the interesting block:
    for line in f:
        if line.strip() == '*NODE, SYSTEM=R':
            break    

    # Reads text until the end of the block:
    for line in f:
        if line.strip() == '**HWCOLOR COMP       1066    30':
            break
        data.append([x.strip() for x in line.split(',')])   #intersect text

1 个答案:

答案 0 :(得分:0)

我建议使用正则表达式而不是字符串匹配。 https://docs.python.org/3/library/re.html

match = re.search('your regex here', line)
if match:
    ...

如果您不熟悉正则表达式,请找一个教程,一旦您知道基础知识,就会发挥一些Regex Golf。正则表达式非常强大且有用,因此我强烈建议学习它们。

或者,您也可以执行类似

的操作
if line.strip().startswith('**HW'):

if '**HW' in line: