2016-01-06 87 views
-2

我试图读取名为testfile.txt的文本文件。 我使用NumPy函数genfromtext,但是我得到一个Index error: Too many indices在Python中读取txt文件

文本文件包含数字的6列:

% Notes: 1A 
% Mach Number: 
% Barometric Pressure: 1036 bar 
% Load using MATLAB command: data = load('filename') 
% Columns: mm, p/pt, C4, C5, C4raw, C5raw 
    44.800000   0.781381  804.605260  1029.721933   -0.015945   -0.001723 
    56.800000   0.681254  699.772376  1027.182448   -0.022291   -0.001977 
    59.800000   0.627379  643.578986  1025.821491   -0.025692   -0.002113 
    62.800000   0.572096  586.082966  1024.447808   -0.029170   -0.002250 
    74.800000   0.440294  449.643875  1021.234840   -0.037422   -0.002571 
    79.800000   0.384134  391.777963  1019.900507   -0.040921   -0.002705 
    84.800000   0.336203  342.518031  1018.784082   -0.043898   -0.002816 
    96.800000   0.270190  274.847768  1017.238791   -0.047987   -0.002971 

这是我的代码:

import numpy as np 
table = np.genfromtxt("testfile.txt",dtype = "float",delimiter = ",",comments = "%") 

mm = table[:,0] 
ppt = table[:,1] 
C4 = table[:,2] 
C5 = table[:,3] 
C4raw = table[:,4] 
C5raw = table[:,5] 

print ppt 
+2

更多信息:输入文件(或它的一部分)和完整的错误 –

+1

上,则该错误发生什么行代码的? –

+0

错误发生在行mm = table [:,0]处,文本文件由六列数字组成。我添加了文本文件的图像 – aeengineer

回答

1

由于对genfromtxt默认是使用(可能是多个)空格作为分隔符,你可以有什么你只需要:

table = numpy.genfromtxt('testfile.txt', comments="%") 

# etc. 

docs

默认情况下,假定genfromtxt delimiter=None,这意味着该线沿白色空间(包括翼片),并且连续的空格被认为是一个单一的空白空间分开。

1

您的文件不是逗号分隔的。试试这个:

table = np.genfromtxt("test1.txt", dtype="float", comments="%")

与您提供的例子,这将返回正确的值给我。

+0

在这种情况下'评论'确实比'skip_header'更好的参数:o) – heltonbiker

+0

我设法让它工作: 表= np.genfromtxt(“testfile.txt”,dtype =“float”,delimiter =“”,comments =“%”) mm = table [:,0] ppt = table [:,1] C4 =表[:,2] C5 =表[:,3] C4raw =表[:,4] C5raw =表[:,5] 打印毫米 – aeengineer

+0

@aeengineer你看到那些'\ t' ?您的文件不是逗号分隔的,它是制表符分隔的。在我上面的答案中使用第二行,这应该工作。 –

0

好的,经过一些试验和错误,我现在解决了这个问题。 感谢您的帮助,省略了分隔符确实是heltonbiker所提出的最终解决方案。 这是我的代码:需要

#Read the textfile "testfile.txt" and place all columns in a separate array 
table = np.genfromtxt("testfile.txt", comments="%") 

mm = table[:,0] 
ppt = table[:,1] 
C4 = table[:,2] 
C5 = table[:,3] 
C4raw = table[:,4] 
C5raw = table[:,5]