de f.tell Python ne fonctionne pas comme je m'y attendais lorsque vous itérer sur un fichier avec f.next():Python: une ligne rembobiner dans le fichier lors de l'itération avec f.next()
>>> f=open(".bash_profile", "r")
>>> f.tell()
0
>>> f.next()
"alias rm='rm -i'\n"
>>> f.tell()
397
>>> f.next()
"alias cp='cp -i'\n"
>>> f.tell()
397
>>> f.next()
"alias mv='mv -i'\n"
>>> f.tell()
397
Looks comme il vous donne la position du tampon plutôt que la position de ce que vous venez de recevoir avec next().
J'ai déjà utilisé le/seek trick pour rembobiner une ligne lors de l'itérer sur un fichier avec readline(). Y at-il un moyen de rembobiner une ligne lors de l'utilisation de next()?
C'est la meilleure solution pour moi. J'avais déjà quelque chose comme un emballage, donc c'était facile de le modifier de cette façon. –
Mise à jour pour python3: utilisez '__next__' à la place de next et cet exemple fonctionnera. Voir http://getpython3.com/diveintopython3/porting-code-to-python-3-with-2to3.html#next –