A (szöveges) állomány megnyitásakor létrejött változó (fileobjektum) .readlines() metódusa egyetlen lépésben listát épít az állomány soraiból (a kimenet áttördelve és megkurtítva):
>>> file= open('inf_e_20050519_m_04_lottosz.dat') >>> lst = file.readlines() >>> lst ['37 42 44 61 62\n', '18 42 54 83 89\n', '5 12 31 53 60\n', '1 28 47 56 70\n', '54 56 57 59 71\n', '7 21 33 39 86\n', … '12 28 34 61 70\n', '1 4 8 69 74\n', '4 15 46 49 59\n', '24 31 67 71 73\n', '12 26 36 46 49\n', '9 20 21 59 68']
Vegyük észre: ebben az évben az utolsó sort nem zárta le \n.
A szöveg típusú változók (stringobjektumok) .strip() metódusa levágja a szélekről a sorvégjelet (és –alapértelmezés szerint– még néhány további karaktert):
>>> file= open('inf_e_20050519_m_04_lottosz.dat') >>> lst = file.readlines() >>> for i in range(len(lst)): ... lst[i]= lst[i].strip() ... >>> lst ['37 42 44 61 62', '18 42 54 83 89', '5 12 31 53 60', '1 28 47 56 70', '54 56 57 59 71', '7 21 33 39 86', … '12 28 34 61 70', '1 4 8 69 74', '4 15 46 49 59', '24 31 67 71 73', '12 26 36 46 49', '9 20 21 59 68']
Írhatunk azonban rövidebb ciklust, egyúttal megszabadulhatunk az indexek használatától. A következő szerkezet a listán iterálva (új) listát épít az elemekből, és azt adja a listának (új) értékül:
>>> file= open('inf_e_20050519_m_04_lottosz.dat') >>> lst = file.readlines() >>> lst = [line.strip() for line in lst] >>> lst ['37 42 44 61 62', '18 42 54 83 89', '5 12 31 53 60', '1 28 47 56 70', '54 56 57 59 71', '7 21 33 39 86', … '12 28 34 61 70', '1 4 8 69 74', '4 15 46 49 59', '24 31 67 71 73', '12 26 36 46 49', '9 20 21 59 68']
Vagy tömörebben leírva:
>>> lst= [line.strip() for line in open('inf_e_20050519_m_04_lottosz.dat')] >>> lst ['37 42 44 61 62', '18 42 54 83 89', '5 12 31 53 60', '1 28 47 56 70', '54 56 57 59 71', '7 21 33 39 86', … '12 28 34 61 70', '1 4 8 69 74', '4 15 46 49 59', '24 31 67 71 73', '12 26 36 46 49', '9 20 21 59 68']
(Azaz a .readlines() metódus elhagyható.)