我搜索了很多,但我找不到从特定行号的csv文件中读取数据的方法。python - 从最后一行读取csv文件
csv文件即时更新。为了更准确的分隔符是一个tab空间 因此,在t1时刻:
1 2 3
5 6 7
8 9 10
11 12 13
14 15 16
在时间t2是
1 2 3
5 6 7
8 9 10
11 12 13
14 15 16
17 18 19
我有一个集合(双端队列),其中我想追加来自coloumn0的csv文件的数据。
此刻我写的代码是能够做到这一点: 在时间0:
[deque([0, 0, 0, 0, 0], maxlen=5)]
在时间1:
[deque(['1', '5', '8', '11', '14'])]
在时间2:
[deque(['5', '8', '11', '14','17'])]
我编写的代码是以我想要的格式阅读它。
Question:
但是当我在某个'x'点重新打开文件时。它应该从
[deque(['8', '11', '14','17','x'])]
,而不是
[deque(['1', '5', '8', '11', '14'])]
阅读和有可能是我读一行,并跳转到下一个文件?有没有图书馆可以让我这样做?
我清楚了吗?或者我错过了一些信息?
采取从裴家(所有学分他)输入更新这个问题的答案:
perf_his = []
for a in range(len(filename)):
perf_his += [deque([0]*5,maxlen=5)]
for a in range(len(filename)):
lines = open(filename[a]).readlines()[-NUM_LINES:]
mydata = [line.split()[0] for line in lines]
for i in range(0, len(mydata)):
perf_his[a].append(mydata[i])
print perf_his
你可能会考虑调整http://code.google.com/p/ pytailer/ – 2013-02-08 23:15:31
我觉得很难理解你为什么要重新打开文件,为什么不重新使用文件句柄。重新打开'x'似乎你想要一行'x'行'x'+ 5,至于第1行,你读了5行数据,但'x'的例子显示它最后一行。是否希望从出列中获取数据,但是当您从csvreader中检测到新数据时,您希望将其添加到出列中。您如何知道什么时候没有更多数据要添加到CSV文件中? – sotapme 2013-02-08 23:44:23
我有多个文件,我必须不断阅读。为了做到这一点,我需要关闭一个文件处理程序,然后重新打开另一个文件处理程序。对? 退出程序并自动确保没有更多数据写入csv文件。 – pistal 2013-02-09 15:08:28