需要将字符串读入float数组

Sha*_*aka 3 python

我有一个如下文本文件.我想将给定值读作浮点列表.之后我会做一些计算.我使用split函数和convertion来浮动.但我无法转换第一个和最后一个,因为这两个方括号.([]).它给出了如下错误.

文件格式

[-1.504, 1.521, 1.531, 1.1579, -2.2976, 2.5927,... 1000 records]
[2.758, -0.951, -1.7952, 0.4255, 2.5403, 1.0233,... 1000 records]
[0.682, -2.205, 2.1981, 2.1329, 0.1574, -0.4695,... 1000 records]
Run Code Online (Sandbox Code Playgroud)

错误

 Traceback (most recent call last):
   File "<stdin>", line 1, in <module>
 ValueError: could not convert string to float: [0.682
Run Code Online (Sandbox Code Playgroud)

我用的代码

F = open('XYZ.txt', 'r')
>>> for line in F:
...     P = line.split(',')
...     P
Run Code Online (Sandbox Code Playgroud)

任何人都可以给我一个想法如何将这些值读入浮点数组,如下所示.

X = [-1.504, 1.521, 1.531, 1.1579, -2.2976, 2.5927,... 1000 records]
Y = [2.758, -0.951, -1.7952, 0.4255, 2.5403, 1.0233,... 1000 records]
Z = [0.682, -2.205, 2.1981, 2.1329, 0.1574, -0.4695,... 1000 records]
Run Code Online (Sandbox Code Playgroud)

然后我可以调用像X [1],X [999]这样的值

Mar*_*ers 7

用于ast.literal_eval()将每一行解析为浮点数列表:

import ast

with open('XYZ.txt', 'r') as infh:
    for line in infh:
        row = ast.literal_eval(line)
        print row
Run Code Online (Sandbox Code Playgroud)

ast.literal_eval()每一行解释为包含文字Python值,支持列表,元组,字典,字符串和数字文字.

演示:

>>> import ast
>>> ast.literal_eval('[-1.504, 1.521, 1.531, 1.1579, -2.2976, 2.5927]\n')
[-1.504, 1.521, 1.531, 1.1579, -2.2976, 2.5927]
Run Code Online (Sandbox Code Playgroud)