J'ai besoin de parcourir plusieurs fois les lignes de quelques fichiers texte. Cela se fait actuellement avec plusieursPython fichier io tampon
with open("file.txt") as f:
for line in f:
# do something
Bien que les performances ne sont pas un problème encore, je voudrais lire les fichiers une seule fois dans un tampon io.StringIO
puis travailler avec cela.
python io
documents:
C'est un groupe de travail snippet
import io
sio = io.StringIO(open("file.txt").read())
for line in sio:
print(line)
sio.seek(0)
for line in sio:
print(line)
sio.close()
ou l'envelopper dans un communiqué withcontext manager
import io
with io.StringIO(open("file.txt").read()) as sio:
for line in sio:
print(line)
sio.seek(0)
for line in sio:
print(line)
#sio.close()
Questions
- Est-ce une "bonne" façon de le faire, quelles sont les alternatives?
- Qu'arrive-t-il à l'objet fichier utilisé pour lire le fichier (il n'y a aucun moyen de le faire explicitement
close()
de cette façon)? - Où puis-je en savoir plus sur la mise en mémoire tampon io de Python (je pense avoir lu quelque chose à propos de Python optimisant plusieurs accès aux fichiers par mise en mémoire tampon automatique)?
Oui, mais mes questions concernent le traitement d'un fichier _multiple_ fois. Devrait-il être 'open()' ed plusieurs fois? De plus, il n'y a pas de références sur la mise en mémoire tampon. – handle