Bonjour,
Je parcours un fichier texte ligne par ligne en python, et j'aimerais comparer la ligne que je suis en train de lire avec celle située 10 lignes en dessous et/ou dix lignes au-dessus.
Le fichier est trop gros pour utiliser readlines()
Merci








Bonjour,
Je parcours un fichier texte ligne par ligne en python, et j'aimerais comparer la ligne que je suis en train de lire avec celle située 10 lignes en dessous et/ou dix lignes au-dessus.
Le fichier est trop gros pour utiliser readlines()
Merci
Tu peux ouvrir plusieurs fois un même fichier en lecture, je pense que c'est le mieux, après tu peux lire ligne par ligne avec readline()








Dans mon cas j'ai trouvé la solution de découper mon fichier en plusieurs parties qui sont chacune lisible avec readlines().
Dans le cas où l'on utilise pas readlines(), est-il possible d'atteindre une ligne donnée sans passer par une boucle de ce type :
Merci pour votre aide !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 while a<ligneEnQuestion: fichier.readline() if a==ligneEnQuestion-1: "instructions" a+=1
Tu peux essayer avec ceci, il y a création d'une liste de 11 item, à chaque lecture d'une ligne il y a mémorisation + rotation + comparaison
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 f = open("ligne10.txt",'r') onzeLigne=[""]*11 for i,ligne in enumerate(f): onzeLigne.append(ligne) del (onzeLigne[0]) print onzeLigne if onzeLigne[0]==onzeLigne[10] : print '===> ligne',i,"=ligne",i-10 f.close()
Le fichier ligne10.txt étant du type
text1
text2
.
.
text10
text1
text2
Non, pas moyen de faire autrement, mais il y a plus lisible :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 ligne = "" for i in xrange(num): #num commence à 0 ligne = fichier.readline() Traitement(ligne)
Connaissez-vous readlines() ?
La lettre 's' n'est pas une faute de frappe...
Ceci permet de ranger dans un tableau de string tout votre fichier. Libre à vous ensuite de travailler dans ce tableau...
Partager