Lire un fichier a partir de la 4eme ligne

Fermé
dreamdeb - 20 nov. 2012 à 18:41
heyquem Messages postés 759 Date d'inscription mercredi 17 juin 2009 Statut Membre Dernière intervention 29 décembre 2013 - 14 déc. 2012 à 20:07
Bonjour,

J'ai un fichier texte dans lequel les 4 premieres lignes sont des entetes et le reste des valeurs en ascii.
Je ne peux pas faire mon robot en python avec ces entetes et mon robot doit parser ce fichier dont le nombre de lignes suivantes sont aléatoires.
J'ai essayé avec read, readlines, mais cela ne fonctionne pas car je ne sais pas si je dois utiliser while ou for.
Je débute en python, merci pour votre aide.
A voir également:

5 réponses

Heliotte Messages postés 1491 Date d'inscription vendredi 26 octobre 2012 Statut Membre Dernière intervention 28 janvier 2013 92
20 nov. 2012 à 18:52
Que ce soit en python ou un autre langage de programmation, c'est le principe de savoir le nombre de ligne qu'il faut passer.
Soit tu connais le nombre de ligne : dans ce cas tu lis autant de ligne que "nombre", puis tu lis les autres lignes, une à une.
Soit tu ne connais pas le nombre de ligne, et là, il faut déterminer le fin de l'entête ou au moins le début de ce que tu dois lire pour récupérer le contenu
0
Merci pour votre réponse rapide, mais le fichier a une longueur différente. La seule chose que je connaisse est l'entete sur 3 lignes, et que je dois lire ligne après ligne et printer chacune de ces lignes... sauf mes 4 premieres lignes ;-)

Merci
0
Heliotte Messages postés 1491 Date d'inscription vendredi 26 octobre 2012 Statut Membre Dernière intervention 28 janvier 2013 92 > dreamdeb
Modifié par Heliotte le 20/11/2012 à 22:41
Il faudrait savoir - un coup La seule chose que je connaisse est l'entete sur 3 lignes,
et un autre sauf mes 4 premieres lignes
alors c'est trois ou quatre lignes ?
peu importe, il faut lire le fichier ligne par ligne en ne tenant pas compte des trois ou quatre premières lignes
Je ne vois pas ou est le blême!
En ce qui concerne le while ou le for, je dirait le while not EOS : TANT QUE pas le fin du fichier.
0
sakoba2010 Messages postés 157 Date d'inscription lundi 7 février 2011 Statut Membre Dernière intervention 24 juillet 2013 15
21 nov. 2012 à 14:35
Je crois que la méthode Seek peut faire l'affaire.
Il permet de changer la position du curseur.
http://python.mesexemples.com/plus-de-python/fichiers/modifier-la-position-courante-dun-fichier-avec-le-module-f-seekoffset-where/
0
Heliotte Messages postés 1491 Date d'inscription vendredi 26 octobre 2012 Statut Membre Dernière intervention 28 janvier 2013 92
21 nov. 2012 à 19:12
# Ouvrir le fichier en mode Lecture
# se positionner sur la quatrième ligne
file.seek(4, 0)
#Lire le fichier ligne par ligne
for line in f.readlines():
print line, #Afficher la ligne courante
quelque chose comme ça !
0
heyquem Messages postés 759 Date d'inscription mercredi 17 juin 2009 Statut Membre Dernière intervention 29 décembre 2013 130
14 déc. 2012 à 20:03
hé Heliotte , ce serait mieux de faire tourner les codes avant de les poster

seek() ne concerne pas les lignes mais les caractères
0
super merciiiiiii ca va m'aider a looooot
0
Heliotte Messages postés 1491 Date d'inscription vendredi 26 octobre 2012 Statut Membre Dernière intervention 28 janvier 2013 92
22 nov. 2012 à 23:25
super si ok
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
heyquem Messages postés 759 Date d'inscription mercredi 17 juin 2009 Statut Membre Dernière intervention 29 décembre 2013 130
Modifié par heyquem le 14/12/2012 à 20:08
with open(filename,'r') as f: 
    f.readline() 
    f.readline() 
    f.readline() 
    f.readline() 
    # et là le pointeur de fichier est positionné devant 
    # le premier caractère de la 5 ième ligne 
    for line in f: 
        # on itère sur les lignes après les 4 premières 
        ...... 
        ........
0