在Python中读取txt文件

时间:2016-01-06 20:16:26

标签: python numpy text-files

我正在尝试阅读名为testfile.txt的文本文件。 我使用NumPy函数genfromtext,但我得到Index error: Too many indices

文本文件由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

3 个答案:

答案 0 :(得分:1)

由于genfromtxt的默认值是使用(可能是多个)空格作为分隔符,因此您只需使用以下内容即可:

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

# etc.

来自docs

  

默认情况下,genfromtxt采用delimiter=None,表示该行沿着空格(包括制表符)分割,并且连续的空格被视为单个空格。

答案 1 :(得分:1)

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

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

使用您提供的示例,这将为我返回正确的值。

答案 2 :(得分: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]