Как уже упоминал Джон, вы можете ввести хвостовой вывод в свой файл, но если по какой-то причине вы хотите обработать все в вашем файле, а также хотите получить пример несколько динамического графа, здесь это
import math
import time
import pylab
def getDataTest(filePath):
s = 0
inc = .05
x_list=pylab.arange(0, 5.0, 0.01)
while 1:
s += inc
if abs(s) > 1:
inc=-inc
y_list = []
for x in x_list:
x += s
y = math.cos(2*math.pi*x) * math.exp(-x)
y_list.append(y)
yield x_list, y_list
def tailGen(filePath):
f = open(filePath)
#f.seek(0, 2) # go to end
for line in f: yield line
while 1:
where = f.tell()
line = f.readline()
if line:
yield line
else:
time.sleep(.1)
f.seek(where)
def getData(filePath):
x_list = []
y_list = []
maxCount = 10
for line in tailGen(filePath):
# get required columns
tokens = line.split(",")
if len(tokens) != 2:
continue
x, y = tokens
x_list.append(x)
y_list.append(y)
if len(x_list) > maxCount:
x_list = x_list[-maxCount:]
y_list = x_list[-maxCount:]
yield x_list, y_list
pylab.ion()
pylab.xlabel("X")
pylab.ylabel("Y")
dataGen = getData("plot.txt") # getDataTest("plot.txt") #
x_list, y_list = dataGen.next()
plotData, = pylab.plot(x_list, y_list, 'b')
#pylab.show()
pylab.draw()
for (x_list, y_list) in dataGen:
time.sleep(.1)
plotData, = pylab.plot(x_list, y_list, 'b')
pylab.draw()
Вы можете забрать элементы из него, и я думаю, что это решит вашу проблему.