我想从文本文件中的表中获取数据到 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)
如有任何帮助,我们将不胜感激。
最佳答案
具有空格分隔值的文件只是经典的一种方言 comma-separated values (CSV)分隔符为空格 () 的文件,后跟更多空格,可以忽略。
幸运的是,Python 带有一个 csv.reader
理解 dialect 的 class
你应该使用这个:
示例:
#!/usr/bin/env python
import csv
csv.register_dialect('ssv', delimiter=' ', skipinitialspace=True)
data = []
with open('hyadeserr.txt', 'r') as f:
reader = csv.reader(f, 'ssv')
for row in reader:
floats = [float(column) for column in row]
data.append(floats)
print data
关于python - 使用 Python 从表中的数据创建数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14007664/