Lire des quelque ligne dans un fichier texte [Résolu]

nournina 52 Messages postés dimanche 27 octobre 2013Date d'inscription 17 juin 2014 Dernière intervention - 23 mai 2014 à 00:04 - Dernière réponse : nournina 52 Messages postés dimanche 27 octobre 2013Date d'inscription 17 juin 2014 Dernière intervention
- 24 mai 2014 à 11:09
Bonjour,
je veut lire des ligne spécifique dans un fichier texte exemple le ligne 3 et 7 et 11 à chaque j'ajoute 3 ligne et lire , ainsi de suite jusqu'à eof (fin de fichier )
j'utilise la boucle for ensuie while mais ça marche plus avec moi
s'il vous plait quelqu'un m'aider à résoudre
merci pour votre collaboration
Afficher la suite 

Votre réponse

11 réponses

Meilleure réponse
YepoMax 75 Messages postés samedi 8 décembre 2012Date d'inscription 14 juin 2014 Dernière intervention - 23 mai 2014 à 11:05
1
Merci
Il y a une erreur dans votre code au niveau de l'utilisation des méthodes sur les fichiers, lisez attentivement ceci pour comprendre : https://docs.python.org/3/library/io.html#io.TextIOBase

Mais sinon ...

C'est déjà la deuxième fois que vous posez ce genre de question. Je vous conseille de faire disparaître tous vos tracas une fois pour toute en traitant votre fichier comme une liste de lignes :

with open("resultat2.txt", "r") as file: lignes = file.read().splitlines()

# (...)
i = 2

while i < len(lignes):
    # Do some stuff here
    i += 4


Je pense que vous aurez bien plus facile ainsi !

Bien à vous,
YepoMax.

Merci YepoMax 1

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 102 internautes ce mois-ci

Commenter la réponse de YepoMax
jordane45 22901 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 20 octobre 2018 Dernière intervention - 23 mai 2014 à 00:26
0
Merci
Bonjour,

Avant tout... sans nous montrer ton code.. impossible pour nous de savoir ce que tu fais mal (et donc de pouvoir t'aider).

Et pense à utiliser la coloration syntaxique (les balises de code) lorsque tu postes du code sur le forum.
Explications disponibles ici :
http://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
Commenter la réponse de jordane45
nournina 52 Messages postés dimanche 27 octobre 2013Date d'inscription 17 juin 2014 Dernière intervention - 23 mai 2014 à 00:35
0
Merci
ok merci monsier pour le conseille
voici ce que je fait :
with open('resultat2.txt','r') as fich:
        i = 3
        while i <= 99  # je fait 99 parce que je sais pas comment indiquer EOF vue que mon fichier pas trop gros 
            ligne = resultat2.readline(i)
            liste_mots = ligne.split() # segmenter la ligne i en mot 
            if len(liste_mots) > 3:
                proba = liste_mots[3]  # je veut sauvegarder le troisième mot dans chaque ligne analysé 
                print proba
                listproba.append(proba)
            else :
                print 'fausse'
            i = i+4
            
    print listproba 
jordane45 22901 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 20 octobre 2018 Dernière intervention - 23 mai 2014 à 00:52
C'est quoi ta variable resultat2 ?

Ne serait-ce pas plutot :
with open('resultat2.txt','r') as fich:
        i = 3
        while i <= 99  # je fait 99 parce que je sais pas comment indiquer EOF vue que mon fichier pas trop gros 
            ligne = fich.readline(i)
nournina 52 Messages postés dimanche 27 octobre 2013Date d'inscription 17 juin 2014 Dernière intervention - 23 mai 2014 à 10:47
resultat2.txt c'est un fichier texte que je veut lire les lignes de ce fichier (la ligne 3 et 7 et 11 et 15 .... ainsi de suite à chaque je saute 3 ligne et lire la quatrième ) mais cette boucle que je fait elle fait lire depuis la première ligne malgrés que je fait inisialisé i=3 veut dire la troisième ligne
aussi le deuxime problème c'est comment indiqué fin de fichier (EOF on c)
jordane45 22901 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 20 octobre 2018 Dernière intervention - 23 mai 2014 à 10:53
resultat2.txt c'est un fichier texte que je veut lire les lignes de ce fichier
Oui ça ok....
mais ... lorsque tu ouvres ton fichier tu dis AS FICH ... donc le readline c'est avec fich ... pas resultat2
Commenter la réponse de nournina
nournina 52 Messages postés dimanche 27 octobre 2013Date d'inscription 17 juin 2014 Dernière intervention - 23 mai 2014 à 11:06
0
Merci
c'est la même chose ou bien non
sincèrement je suis débutant en python mais j'ai trouvé que cette structure d'ouvrir un fichier et lire "r" c'est plus mieux que l'autre structure
YepoMax 75 Messages postés samedi 8 décembre 2012Date d'inscription 14 juin 2014 Dernière intervention - 23 mai 2014 à 11:23
"r" veut dire "read" (lire)

Les autres méthodes sont listées ici : https://docs.python.org/3/library/functions.html#open

Lorsque vous dites que "r" est mieux que l'autre structure, à quoi faite vous référence ?
nournina 52 Messages postés dimanche 27 octobre 2013Date d'inscription 17 juin 2014 Dernière intervention - 24 mai 2014 à 00:57
non je veut dire que la structure d'ouvrir un fichier :
with open('resultat2.txt','r') as fich:


plus mieux que cette structure :
fich = open ("resultat.txt","r") 
  #traitement  ou bien instruction 
fich.close 

mais pas le mode lecture "r" ou bien écriture "w"
merci bien monsieur
YepoMax 75 Messages postés samedi 8 décembre 2012Date d'inscription 14 juin 2014 Dernière intervention - 24 mai 2014 à 02:47
Ah d'accord !

C'est au fait exactement la même chose (
utilisation de __enter__ et __exit__ si j'ai bonne mémoire), dans certains scripts on ne sait pas placer le fichier dans un bloc with.

Mais sinon, moi aussi dès que je peu j'utilise with open( ... ) as ... car c'est une syntaxe claire et facile (et surtout, j'ai l'impression d'être plus intelligent en faisant ça O_o)
nournina 52 Messages postés dimanche 27 octobre 2013Date d'inscription 17 juin 2014 Dernière intervention - 24 mai 2014 à 11:09
merci bien
mais comment j'indique fin de fichier ( EOF comme en C )
Commenter la réponse de nournina

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.