【发布时间】:2021-05-16 21:06:01
【问题描述】:
我有一个文本文件,其中包含我试图在 Python 中读取的数据:
OMEGA2 1.450E+00 1.500E+00 1.550E+00 1.600E+00 1.650E+00 1.700E+00
OMEGA2 1.800E+00 1.850E+00 1.900E+00 1.950E+00 2.000E+00 2.050E+00
F2REAL 1.146E+00 -1.015E+03-2.206E+03-2.618E+03-2.288E+03-1.400E+03
F2REAL 6.255E+00 -3.254E+02-8.150E+02-1.060E+03-9.749E+02-5.995E+02
F2REAL 1.754E+01 -1.530E+02-4.375E+02-5.932E+02-5.618E+02-3.536E+02
F2REAL 1.740E+01 -7.981E+01-2.525E+02-3.748E+02-3.891E+02-2.739E+02
OMEGA2 1.800E+00 1.850E+00 1.900E+00 1.950E+00 2.000E+00 2.050E+00
现在,我只想获得以 F2REAL 开头的值; 每行,我想提取 6 个值。 Value1 是从索引 11 到索引 20,值是从索引 21 到 30,...,值 6 是从索引 61:70
我尝试了以下方法:
file = 'file.txt'
STR1 = 'F2REAL'
def get_data():
with open(file) as f:
hyd_all = f.readlines()
for line in hyd_all:
if STR1 in line:
print([float(line[10:19]),float(line[20:29])])
get_data()
- 这不会读取 E-power,因为我得到 [1.146,-1.015,..]。如何正确获取?
- 有没有比写 10:19,20:29,..60:69 更好的方法? 所有感兴趣的行都有 6 列,并且总是从 10*i 开始
- 我想将每个结果附加到一个矩阵中。在这个 4 行 6 列的例子中
【问题讨论】:
-
像
line[10:19]这样的切片包含第一个索引,但不包含最后一个索引(即行[19])不包含在切片中。使用line[10:20]等。
标签: python