J'ai un extrait de code de queue-like que j'ai trouvé quelque part sur le web. Malheureusement, j'ai découvert à un moment donné, il semble être coincé sur EOF même lorsque l'EOF n'est plus là, car quelque chose a été ajouté au fichier. Il retournera toujours 0. Si je cherche en arrière, par exemple 10 octets, il lira jusqu'à la position EOF précédente et c'est tout. Je peux le réparer en fermant et en rouvrant le fichier, mais je ne comprends pas le comportement. Quelqu'un peut-il aider?python "queue -f" comme readline de la fonction coincé sur EOF
Le code:
def tail_f_nonblock(f):
while True:
where = f.tell()
line = f.readline()
if not line:
diff = f.tell()-where
f.seek(where)
# If there was some output, give -1
if diff!=0: return -1
else: return 0
else:
return line
ce qui est 'dire()' ici? – marmeladze
Il obtient la position actuelle dans le fichier. Utilisé pour savoir s'il y avait une ligne incomplète lue, et si c'est le cas, retournez et informez l'utilisateur. –