我正在尝试读取一个文件(读取此文件中的每一行,包括字母,数字和字符)。脚本需要一般工作,文件类似但有一些变化。
现在它在找到如下所示的行时读取:“** 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
答案 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: