在Python中改变行的长度

时间:2015-01-28 21:16:58

标签: python-2.7 numpy

我试图编写一个文本文件的代码,每次运行时都会有不同长度的行。在原始数据中,必须跳过一定数量的行才能获得最终将被绘制的数据。以下是我现在要在文本文件中阅读的代码(' G'表示我们将加载的任意数据文件:

t,x,y = np.loadtxt(G, delimiter = ',', skiprows = 15, usecols = (0,1,2),unpack = True)

我如何编写它以便"跳过"值可能会根据新的行号而有所不同?以下是原始数据文件的摘录:

30.000,   0.0009,    0.015                        
25.000,   0.0008,    0.013     
20.000,   0.0012,    0.074   

Time,     CMOD,     Load     

0.000,  -0.0046,    0.104   

我要分析的数据是标题下的第二组值" Time,CMOD,Load"。因此,上述数据组在测试之间将具有不同的行数。

谢谢!

1 个答案:

答案 0 :(得分:1)

我认为loadtxt不会自己做你想做的事情,但你可以先处理你文件的行找到标题,然后交给它:

import numpy as np
with open('so.txt') as fi:
    while True:
        line = fi.readline()
        if not line:
            # header line not encountered - handle it here somehow
            import sys; sys.exit()
        if line.strip() == 'Time, CMOD, Load':
            break
    t,x,y = np.loadtxt(fi, delimiter = ',', skiprows = 1,
                       usecols = (0,1,2),unpack = True)

print(t,x,y)

请注意,此处的skiprows=1会在您要查找的标题后跳过空白行