我正在尝试使用此代码
从一个恒星目录中绘制.dat文件 try:
import pyfits
noPyfits=False
except:
noPyfits=True
import matplotlib.pyplot as plt
import numpy as np
f2 = open('/home/mcditoos/Desktop/Astrophysics_programs/Data_LAFT/ESPECTROS/165401.dat', 'r')
lines = f2.readlines()
f2.close()
x1 = []
y1 = []
for line in lines:
p = line.split()
x1.append(float(p[0]))
y1.append(float(p[1]))
xv = np.array(x1)
yv = np.array(y1)
plt.plot(xv, yv)
plt.show()
然而我收到以下错误:
x1.append(float(p[0]))
IndexError: list index out of range
我还想知道是否有一个程序能够在给定输入的情况下打开下一个.dat文件
答案 0 :(得分:0)
我可能无法完全理解您的问题,但为什么不使用
X, Y = numpy.genfromtxt('yourfile', dtype='str')
X = X.astype('float')
Y = Y.astype('float')
如果您的文件中有2列,则可以使用
转换表格X, Y = numpy.genfromtxt('yourfile', dtype='str').T