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 :

Probleme d'insertion de fichiers – Boucle recursive ?


Sujet :

Python

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2006
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 34
    Points : 24
    Points
    24
    Par défaut Probleme d'insertion de fichiers – Boucle recursive ?
    Bonjour a tous,
    j'ai un petit probleme d'ecriture de fichier :

    je souhaite insérer un fichier txt (titi.txt) au milieu d'un autre (toto.txt), le résultat dois être un troisième fichier (sortie.txt)

    fichier toto.txt
    debut toto.txt
    insere 'titi.txt'
    fin toto.txt


    fichier titi.txt
    #### debut titi.txt ####
    #### fin titi.txt ####


    fichier sortie.txt (fichier souhaité....)
    debut toto.txt
    #### debut titi.txt ####
    #### fin titi.txt ####
    fin toto.txt


    Pb : seul le fichier d'entrée (toto.txt) est copié dans le fichier de sortie. la boucle marche bien puisque la fenetre Shell me sort la bonne sequence de texte .....
    Merci d'avance pour l'aide....


    mon script :
    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
    def insere_fichier(source,destination):
    	"insere un fichier txt au milieu d'un autre"
    	fs=open(source, 'r') # ouverture du fichier d'entrée
    	fd=open(destination,'w') # ouverture du fichier de sortie
    	while 1:
                ligne=fs.readline() # lecture d'une ligne
    	    if ligne =="":  # sortie à la fin du fichier
                    break
                elif "insere"in ligne[0:8]: # si le mot insere se trouve ds la ligne insérer le fichier
    		    fichier=ligne.split("'")[1]
    		     insert_fichier(fichier,destination) # boucle récursive : permet plusieurs niveau d'insertion
    	    else :
    		fd.write(ligne) # ecriture dans le fichier de sortie
    		print ligne
    	fs.close()
            fd.close()
            return

  2. #2
    Membre régulier

    Profil pro
    Inscrit en
    Février 2004
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2004
    Messages : 76
    Points : 103
    Points
    103
    Par défaut
    salut,

    Le problème est que le fichier destination est ouvert en mode écriture à chaque appelle de la fonction. Passer une référence sur le fichier ouvert à la fonction résoud le problème.
    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
    20
    21
    22
    def insere_fichier(fs,fd):
        "insere un fichier txt au milieu d'un autre"
        while 1:
            ligne=fs.readline() # lecture d'une ligne
            if ligne =="":  # sortie à la fin du fichier
                break
            elif "insere"in ligne[0:8]: # si le mot insere se trouve ds la ligne i
    nsérer le fichier
                fichier=ligne.split("'")[1]
                fin = open(fichier)
                insere_fichier(fin, fd) # boucle récursive : permet plusieurs nive
    au d'insertion
            else :
                fd.write(ligne) # ecriture dans le fichier de sortie
            print ligne
        fs.close()
        return
     
    fs = open("toto.txt")
    fd = open("sortie.txt", "w")
    insere_fichier(fs, fd)
    fd.close()

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 31/03/2011, 18h16
  2. Réponses: 8
    Dernier message: 13/04/2010, 12h55
  3. Probleme sqlite et boucle recursive
    Par didier.heck dans le forum SQLite
    Réponses: 3
    Dernier message: 13/02/2010, 13h18
  4. Réponses: 2
    Dernier message: 30/03/2009, 21h09
  5. probleme de création de fichiers avec une boucle
    Par bobo696 dans le forum Débuter
    Réponses: 3
    Dernier message: 19/01/2009, 14h45

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