留下python中的第一行和最后一行元素

时间:2013-03-19 09:38:17

标签: python

我有一个CSV文件,我用于绘制图表。 我想从csv文件中删除第一行和最后一列,因为第一行包含命名,最后一行包含空格。 删除第一行和最后一行后,程序已正常工作。如何删除此提取文件中的行。我需要做什么来自动运行

import csv
import matplotlib.pyplot as plt

plt.figure()

file =open("graph.csv","r+")
reader = csv.reader(file)
TS=[]
TIME=[]
ACT_ANGLE=[]
DES_ANGLE=[]
for line in reader:

       TS.append(line[12])
       TIME.append(line[5])
       ACT_ANGLE.append(line[7])
       DES_ANGLE.append(line[6])

x=TS
z=ACT_ANGLE
#print x
y=DES_ANGLE


plt.plot(x,y)
plt.xlabel('Time in Sec')
plt.ylabel('Actual angle in degree')
plt.show()
plt.savefig("example.png")

1 个答案:

答案 0 :(得分:0)

要摆脱第一行,您可以使用csv.DictReader,这也可以让您通过名称而不是索引来获取值,从而使代码更具可读性。对于最后一行,这样的事情会起作用:

for line in [line for line in reader][:-1]:

...但是这会立即将整个文件读入内存以创建列表。由于您已经重新分配了值,因此只需对

进行简单的更改即可
x=TS[:-1]
z=ACT_ANGLE[:-1]
y=DES_ANGLE[:-1]

应该这样做,

x=TS[1:][:-1]
z=ACT_ANGLE[1:][:-1]
y=DES_ANGLE[1:][:-1]
如果你不想使用dictreader,

也会删除第一行。但是,这导致了比第一种方法更多的代码重复。