Python: 从用字符串写入文件的矩阵中读取特定元素

Python: Read specific element from a matrix written in a file with string

我想从文件中的矩阵读取数据,问题是数据是带有字符串的浮点数,但是,我只对读取浮点数元素感兴趣, 我尝试了几个选项,包括 pandas dataframe,但是,我做不到,所以我请求帮助。

我将文件作为图片附加,因为我无法上传文件本身,代码:

with open('data.dat', 'r') as f:
output_data = f.readlines()
element =  [(d+' ')[:d.find(':')].rstrip() for d in output_data] # trying to read only number after ":" 
print(output_data[0]) 
 # EXPECTED OUTPUT is: 
  0.162239678E+01
 # CURRENT OUTPUT IS: ['  data  1:           0.162239678E+01\n', '  data  2:           0.413951524E+01']



## data.dat    is as the following:
  data  1:           0.162239678E+01
  data  2:           0.413951524E+01

您的方法似乎是正确的,但不知何故您针对的是每行的第一部分而不是实际数字。问题是这样的:[:d.find(':')],你想要字符串的另一边:[d.find(':'):]。此外,您将捕获 ":" 字符,因此将 1 添加到该位置。然后,使用 str.strip 而不是 str.rstrip 在字符串的两边应用该函数。这是生成的代码(经过一些简化):

with open('data.dat', 'r') as f:
    output_data = f.readlines()
    elements =  [d[d.find(':')+1:].strip() for d in output_data]
    print(elements)