使用Python从表中的数据创建数组

使用Python从表中的数据创建数组,python,arrays,Python,Arrays,我想将数据从文本文件中的表中获取到python数组中。我用作输入的文本文件有7列31行。以下是前两行的示例: 10672 34.332875 5.360831 0.00004035881220 0.00000515052523 4.52E-07 6.5E-07 12709 40.837833 19.429158 0.00012010938453 -0.00000506426720 7.76E-06 2.9E-07 我尝试编写的代码不

我想将数据从文本文件中的表中获取到python数组中。我用作输入的文本文件有7列31行。以下是前两行的示例:

10672   34.332875   5.360831    0.00004035881220    0.00000515052523    4.52E-07    6.5E-07

12709   40.837833   19.429158   0.00012010938453    -0.00000506426720   7.76E-06    2.9E-07
我尝试编写的代码不起作用,因为当它通过for循环时,它不会一次读取一行

data = []
f = open('hyadeserr.txt', 'r')
while True:
    eof = "no"
    array = []
for i in range(7):
    line = f.readline()
    word = line.split()
    if len(word) == 0:
        eof = "yes"
    else:
        array.append(float(word[0]))
        print array
if eof == "yes": break
data.append(array)

任何帮助都将不胜感激

具有空格分隔值的文件只是经典文件的一种方言,其中分隔符是空格(
),后面跟着更多空格,可以忽略这些空格

令人高兴的是,Python附带了一个理解s的

您应该使用以下选项:

例子:
具有空格分隔值的文件只是经典文件的一种方言,其中分隔符是一个空格(
),后跟更多的空格,可以忽略这些空格

令人高兴的是,Python附带了一个理解s的

您应该使用以下选项:

例子:
如果您不想在此处使用cvs,因为您并不真正需要它:

data = []
with open("hyadeserr.txt") as file:
    for line in file:
        data.append([float(f) for f in line.strip().split()])
或者,如果您确定唯一的额外字符是空格和行尾
\n
,则可以将最后一行转换为:

data.append([float(f) for f in line[:-1].split()])

如果您不想在此处使用cvs,因为您并不真正需要它:

data = []
with open("hyadeserr.txt") as file:
    for line in file:
        data.append([float(f) for f in line.strip().split()])
或者,如果您确定唯一的额外字符是空格和行尾
\n
,则可以将最后一行转换为:

data.append([float(f) for f in line[:-1].split()])

使用来解析文件。为什么要使用
“yes”
“no”
字符串而不是
True
False
?!按照代码缩进的方式,在
循环期间,您永远无法逃脱第一个
。请使用来解析文件。为什么要使用
“yes”
“no”
字符串而不是
True
False
?!按照代码缩进的方式,您永远无法逃脱第一个
,而
循环。注意:是Python内置的,因此标识符的选择不好。我仍然建议使用标准库中的CSV(而不是“cvs”)模块,以避免在剥离、拆分、行结束、错误处理等方面重新发明轮子。注意:是Python内置的,因此是标识符的错误选择。我仍然建议使用标准库中的CSV(而不是“cvs”)模块,以避免在剥离、拆分、行结束、错误处理等方面重新发明轮子。