IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Pb de lecture consécutive de 2 fichiers txt


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Expert sécurité informatique
    Inscrit en
    Novembre 2019
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Expert sécurité informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Novembre 2019
    Messages : 2
    Par défaut Pb de lecture consécutive de 2 fichiers txt
    Bonjour à tous,

    Je bloque sur un code et j'aimerai avoir votre aide. Voici le code :

    l’objectif est d'avoir un fichier de sortie avec les informations des 2 fichiers txt sources. les lignes de mon fichier de sortie sont constituées d'une donnée de mon fichier 1 et de mon fichier 2. Concrètement, par boucle je veux lire le contenu ligne par ligne de mon fichier 2 et la première ligne de mon fichier 1, une fois le fichier 2 lu, je passe a la ligne suivante de mon fichier 1 et ça jusqu’à la lecture de ma dernière ligne de mon fichier 1. J'ai essayé avec du WHILE et du FOR mais impossible d'avoir le résultat souhaité.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    out = open('out.txt','w')
    f1 = open('1.txt')
    f2 = open('2.txt')
     
    line1 = f1.readline()        
    while line1:
        line2 = f2.readline()
        while line2:
            out.write('www.'+line1.rstrip()+'.'+line2)
            line2 = f2.readline()
        line1 = f1.readline()
     
    f1.close()
    f2.close()
    out.close()
    Merci d'avance pourvotre aide.

  2. #2
    Membre chevronné
    Homme Profil pro
    BTS SN IR
    Inscrit en
    Mai 2017
    Messages
    514
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : BTS SN IR

    Informations forums :
    Inscription : Mai 2017
    Messages : 514
    Par défaut
    Si les 2 fichiers font la même taille ça peut se résumer à ça :
    Pour chaque ligne d'un de mes deux fichiers je lis une ligne du fichier 1 puis une du fichier 2.
    Les fichiers peuvent être lu directement avec une boucle for, par exemple essayé ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    for line in f1:
        print(line)
    vous pouvez allez encore plus loin grâce à zip

  3. #3
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    Salut,

    Quand la lecture du fichier 2 est terminée elle ne reprend pas au début, tu dois repositionner la lecture à son début avec f2.seek(0)

  4. #4
    Candidat au Club
    Homme Profil pro
    Expert sécurité informatique
    Inscrit en
    Novembre 2019
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Expert sécurité informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Novembre 2019
    Messages : 2
    Par défaut
    Merci VinsS c'est exactement ça. Merci pour votre aide. je mets le sujet en résolu.

  5. #5
    Membre chevronné
    Homme Profil pro
    BTS SN IR
    Inscrit en
    Mai 2017
    Messages
    514
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : BTS SN IR

    Informations forums :
    Inscription : Mai 2017
    Messages : 514
    Par défaut
    pour le fun:

    f1:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ligne 1 fichier 1
    ligne 2 fichier 1
    ligne 3 fichier 1
    f2:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ligne 1 fichier 2
    ligne 2 fichier 2
    ligne 3 fichier 2
    (en supposant que les dernières lignes des fichiers finissent par un retour à la ligne)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    with open("f1.txt") as f1, open("f2.txt") as f2, open('sortie.txt', "w") as sortie:
    	for line_f1, line_f2 in zip(f1, f2):
    		sortie.write(line_f1)
    		sortie.write(line_f2)
    ce qui donne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    ligne 1 fichier 1
    ligne 1 fichier 2
    ligne 2 fichier 1
    ligne 2 fichier 2
    ligne 3 fichier 1
    ligne 3 fichier 2

  6. #6
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    @ flapili,

    Ce qui est demandé c'est ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    f1 l1
    f2 l1
    f2 l2
    f2 l3
    f2 l4
    f2 ...
    f1 l2
    f2 l1
    f2 l2
    f2 l3
    f2 l4
    f2 ...
    f1 l3
    f2 l1
    f2 l2
    f2 l3
    f2 l4
    f2 ...

  7. #7
    Membre chevronné
    Homme Profil pro
    BTS SN IR
    Inscrit en
    Mai 2017
    Messages
    514
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : BTS SN IR

    Informations forums :
    Inscription : Mai 2017
    Messages : 514
    Par défaut
    Ah mes excuses j'avais mal compris

    s'il faut répéter n fois le fichier 2 alors le lire n fois n'est pas très judicieux, autant faire quelque chose comme ça.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    with open("f2.txt") as f2:
    	content_f2 = f2.read()
     
     
    with open("f1.txt") as f1, open('sortie.txt', "w") as sortie:
    	for line in f1:
    		sortie.write(line)
    		sortie.write(content_f2)
    stocker le contenu du fichier 1 en mémoire est toujours (à moins d'avoir des fichiers de plusieurs GO ?) mieux selon moi.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Python 3.X] Problème lecture et analyse contenu fichier .txt
    Par marcoxavier dans le forum Général Python
    Réponses: 3
    Dernier message: 16/06/2017, 11h46
  2. pb dans la lecture consécutive de deux fichiers txt
    Par tasnim2010 dans le forum C++
    Réponses: 1
    Dernier message: 10/09/2012, 23h02
  3. [PERL]Prob lecture/écriture dans un fichier ".TXT"
    Par Magcom dans le forum Langage
    Réponses: 8
    Dernier message: 29/07/2010, 10h36
  4. Problème de lecture/ecriture dans un fichier txt
    Par fraid49 dans le forum Général Python
    Réponses: 6
    Dernier message: 20/11/2008, 11h32
  5. Lecture répétitive dans un fichier txt
    Par Didine95 dans le forum Langage
    Réponses: 9
    Dernier message: 20/07/2006, 14h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo