我正在尝试从文本文件中提取几行数据。该数据集位于两个标记之间(“et 1027”和“t 0”),如下所示:
.... (some data)
et 1027
0.00000E+00 1.00000E-05 3.00000E-03 6.00000E-03 9.00000E-03 1.20000E-02
1.50000E-02 1.80000E-02 2.10000E-02 2.40000E-02 2.70000E-02 3.00000E-02
...
...
t 0
.... some more data
我试图使用以下脚本,但实际上没有用,因为它最终也打印了标记之外的所有数字。我只想打印这两个标记之间的数据线(不包括标记)。这是我失败的剧本。有谁知道如何设置开始和结束标签并打印之间的线?提前谢谢。
import re
file = open ('data.txt', 'r')
for line in file:
line= line.strip()
y= re.findall('[0-9]+', line)
print y
答案 0 :(得分:2)
你可以用一种简单的方式做到:阅读文件,直到你遇到第一个标记,然后打印你读到的所有内容,直到你遇到下一个标记
with open('data.txt', 'r') as data:
line= data.readline()
while line != 'et 1027':
line= data.readline()
else:
line= data.readline()
while line != 't 0':
print y
line= data.readline()
答案 1 :(得分:1)
你可能想尝试这样的事情
import re
file = open ('data.txt', 'r')
allowed = False
for line in file:
line= line.strip()
if line == 'et 1027':
allowed = True
if line == 't 0':
allowed = False
break
if allowed:
y= re.findall('[0-9]+', line)
print y