2013-04-25 16 views
0
import numpy as np 
import asciidata 

def leesdata(): 
    RA = [] 
    Dec = [] 
    data = asciidata.open('S0-2.txt') 
    for i in data[1]: 
     RA.append(float(i)) 
    for i in data[2]: 
     Dec.append(float(i)) 
    return RA, Dec 

RA, Dec = leesdata() 
print RA, Dec 

当我运行此我得到这个:只有我的数据的第一位被放在一个阵列

[-0.04] [0.15, 0.138, 0.124, 0.098, 0.088, 0.078, 0.05, 0.041, 0.02, 
0.01, -0.017, -0.004, 0.011, 0.072, 0.079, 0.085] 

因此,只有我的数据的第一个数字被放在阵列RA的,但十二月工作正常。我究竟做错了什么?

这里的文件我试图打开

http://home.strw.leidenuniv.nl/~snellen/PS/S2_pos.dat

+1

您可以添加您的测试文件,以便我们可以复制您的问题?而且正确的缩进将会很好。 – Michal 2013-04-25 14:37:13

+0

你不能只读文件吗?我将发布一些示例代码作为示例。 – James 2013-04-25 14:39:00

+0

如果你不打算使用它,从'leesdata'替换'S0-2.txt'到'S',否则你永远无法打开不同的文件 – PurityLake 2013-04-25 14:39:30

回答

1

一般情况下我使用的开放相结合,并宣读了这一点。以下是我如何阅读文件:

f = open('S0-2.txt', 'r+') 
RA = [] 
DEC=[] 
for line in f: 
    if (not(line.startswith('#'))): 
     RA.append(line.split()[1]) 
     DEC.append(line.split()[2]) 

print RA 

print DEC 
+0

当我使用你的代码时,我得到一个IndexError:列表索引超出范围 – Steven 2013-04-25 14:53:30

+0

对不起,这是由于您的文件上的标题,上面应该工作 – James 2013-04-25 14:59:29

+0

谢谢,它现在=] – Steven 2013-04-25 15:02:52

相关问题