我试图编写一个文本文件的代码,每次运行时都会有不同长度的行。在原始数据中,必须跳过一定数量的行才能获得最终将被绘制的数据。以下是我现在要在文本文件中阅读的代码(' 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"。因此,上述数据组在测试之间将具有不同的行数。
谢谢!
答案 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
会在您要查找的标题后跳过空白行。