【发布时间】:2016-06-23 18:12:15
【问题描述】:
我有一个来自仪器的数据文件,它以 CSV 格式输出。读取文件和相应的列没有问题,但是,由于检测的轻微变化,数据文件已经改变,我不确定如何更改我的代码以仍然读取文件。
f = open('Rotator_050816.dat')
lines = f.readlines()
i = 0
while (lines[i]<>"[Data]\n"):
i+=1
i = i + 2
Temp = []; Field = []; Resistance1 = []; Resistance2 = [];
while(i<len(lines)):
data = lines[i].split(",")
Temp.append(float(data[3])
Field.append(float(data[4])
Resistance1.append(float[12])
Resistance2.append(float[13])
i+=1
Temp = np.array(Temp)
Field_T = np.array(Field)/10000.
Resistance1 = np.array(Resistance1)
Excitation1 = np.array(Excitation1)
这是以前使用的 MWE。如果 CSV 文件没有空白条目,这没有问题,但是,如果有空白条目,则会出现问题,因为 len(Resistance1) ≠ len(Temp),因此无法正确绘制它们。所以我的数据文件现在看起来像这样:
所以我需要为 Res 添加可以读取一行的代码行。 Ch1 或水库。 Ch2 为空,然后在附加到最终数据集之前跳过所有变量的整行。这样 len(Resistance1) = len(Temp) 和每个 Res. Ch1 测量值与正确的温度相匹配。
【问题讨论】:
-
这需要minimal reproducible example (MWE)。
[data]是什么?此外,<>不是有效的 Python 语法。另外,while 循环永远不会终止。 -
@MorganThrapp
<>是有效的 Python 2。 -
@StefanPochmann 嗯,我的立场是正确的。我不知道。
-
为 MWE 添加了更多内容。它完全适用于没有空格的数据文件。
-
看来你应该使用
csv模块。
标签: python csv matplotlib scientific-computing