Bonjour à tous !

Je cherche à faire un script me permettant de lire des chiffres (écrit en continu dans un fichier .txt via un logiciel tiers) et de les tracer sur un axe (x,y). Pour les graphs, j'utilise drawnow, ça marche plutôt bien.
Cependant je rencontre un problème lorsque l'écriture de ces chiffres dans le fichier .txt est en pause pour x raisons. Je ne parviens pas à faire une pause dans mon script, puis de continuer la lecture du fichiers lorsque de nouveaux chiffres apparaissent.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
from pylab import arange, plt
from drawnow import drawnow
import numpy as np
import time
 
plt.ion() # enable interactivity
fig=plt.figure() # make a figure
 
def makeFig():
    plt.scatter(x,y) # I think you meant this
 
x=list()
y=list()
 
f = open('data.txt', 'r+')
line=f.readline()
last_pos = f.tell()
print "derniere pos", last_pos
i=0
 
while True:
        if line:
                print(line)
                x.append(i)
                y.append(line)
                i=i+1
                print i
                print "boucle last pos",last_pos
                drawnow(makeFig)
                last_pos=last_pos+1
                line=f.readline(last_pos)
        else:
                time.sleep(1)
                f.flush()
                f.close()
                f = open('data.txt', 'r+')
                print(last_pos), ">last pos"
                line=f.readline(last_pos)
Ici :
-lecture des données et creation graph +
-si pas de ligne avec des chiffres alors
-pause d'une seconde
-reprise de la lecture depuis la dernière position

Avec ce script, la lecture reprend depuis le début après la pause de 1s.

D’où provient le soucis ?

Merci par avance pour toute aide

Jonathan