Qu'est-ce que substitue xreadlines () en Python 3?
-
30-09-2019 - |
Question
python 2, les objets de fichier ont une méthode xreadlines () qui retourne un itérateur qui lit le fichier une ligne à la fois. En Python 3, la méthode xreadlines () n'existe plus, et realines () retourne encore une liste (non un itérateur). Est-ce que Python 3 a quelque chose de similaire à xreadlines ()?
Je sais que je peux faire
for line in f:
au lieu de
for line in f.xreadlines():
Mais je voudrais aussi xreadlines d'utilisation () sans boucle:
print(f.xreadlines()[7]) #read lines 0 to 7 and prints line 7
La solution
L'objet fichier lui-même est déjà un itérable.
>>> f = open('1.txt')
>>> f
<_io.TextIOWrapper name='1.txt' encoding='UTF-8'>
>>> next(f)
'1,B,-0.0522642316338,0.997268450092\n'
>>> next(f)
'2,B,-0.081127897359,2.05114559572\n'
Utilisez itertools.islice
pour obtenir un élément arbitraire d'un itérable.
>>> f.seek(0)
0
>>> next(islice(f, 7, None))
'8,A,-0.0518101108474,12.094341554\n'
Autres conseils
comment de cette (expression du générateur):
>>> f = open("r2h_jvs")
>>> h = (x for x in f)
>>> type(h)
<type 'generator'>`
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow