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 :

Enregistrer dans un fichier


Sujet :

Python

  1. #1
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Mai 2009
    Messages
    50
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2009
    Messages : 50
    Par défaut Enregistrer dans un fichier
    Salut tout le monde, j'étale directement le problème.

    Je possède plusieurs fichier dont je dois faire un tri dans leurs lignes, et afficher le résultat dans un fichier de sortie. Ce que j'ai déjà réussit à faire grâce à la solution suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     
    def write(infile,dictionnaire):
        of=file("%s-interfaces non liees.doc" % infile,"w")
            of.write('Not connected interfaces:\n\n')
            print('Not connected interfaces:\n\n')
            for cle in dictionnaire:
                for par in dictionnaire [cle]:
                    """print par"""
                    of.write(par)
            of.close()
    Le résultat marche et le programme crée à chaque fois un document avec le nom du fichier d'origine comme entete puis suivi de 'interfaces liées...'.
    Je cherche maintenant à envoyé le résultat dans un autre répértoire, au lieu de créer les fichiers doc auprès des anciens !!
    Par exemple le chemin suivant:
    C:\Documents and Settings\All Users\output

  2. #2
    Membre émérite
    Avatar de Antoine_935
    Profil pro
    Développeur web/mobile
    Inscrit en
    Juillet 2006
    Messages
    883
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur web/mobile

    Informations forums :
    Inscription : Juillet 2006
    Messages : 883
    Par défaut
    Il est déconseillé de se servir directement de file. Préfère open.
    De plus, sous windows, le passage à la ligne est \r\n.

    Pour ouvrir un fichier dans un dossier, euh... assez simple en fait.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    f = open("chemin/vers/le/fichier.dat")

  3. #3
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Mai 2009
    Messages
    50
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2009
    Messages : 50
    Par défaut
    Il ne s'agit pas d'ouvrir, car le fichier n'existe pas.
    Je dois le créer et pourvoir ecrir dessus, toujours dans le répétoire vide

  4. #4
    Membre émérite
    Avatar de Antoine_935
    Profil pro
    Développeur web/mobile
    Inscrit en
    Juillet 2006
    Messages
    883
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur web/mobile

    Informations forums :
    Inscription : Juillet 2006
    Messages : 883
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    f = open("chemin/vers/le/fichier.dat", "w")

  5. #5
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Mai 2009
    Messages
    50
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2009
    Messages : 50
    Par défaut
    D'après tes reflexions, ca devrait doner ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    def write(infile,dictionnaire):
        """Ecrit le dictionnaire dans un fichier de sortie """
        of=open("C:\Documents and Settings\All Users\output\%s-interfaces non liees.doc" % infile,"w")
        for cle in dictionnaire:                                                                                            #Tri des clés du dictionnaire
                for par in dictionnaire[cle]:
                    print ('di=',par)
                    of.write(par)
        of.close()
    Ca ne marche pas:
    IOError: [Errno 22] invalid mode ('w') or filename: 'C:\\Documents and Settings\\All Users\\output\\C:\\Documents and Settings\\All Users\\config_copy\\core_routers\\configs\\bru-11-r6.car.belbone.be-interfaces non liees.doc'

  6. #6
    Membre émérite
    Avatar de Antoine_935
    Profil pro
    Développeur web/mobile
    Inscrit en
    Juillet 2006
    Messages
    883
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur web/mobile

    Informations forums :
    Inscription : Juillet 2006
    Messages : 883
    Par défaut
    Pense à échapper les \. Python le fait, mais quand même...

    De toute évidence il y a un souci avec le path absolu. Jamais vu ça.
    Soit tu fais quelque chose de travers qui m'échappe, soit tu es tombé sur un bug quelconque à la noix...

    Bon, essaye tjs de faire ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    os.chdir("C:")
    open("Documents And Settings\\...")
    Et sinon, arrange toi pour le faire en chemin relatif. T'as bien réussi à ouvrir des fichiers doc sur le disque C, tu dois bien pouvoir en créer.

    Edit: aaaah non, cherche pas :p
    Fais un peu, dans ta fonction
    PS: cela dit il serait intéressant que tu lises tes messages d'erreur.

  7. #7
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Mai 2009
    Messages
    50
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2009
    Messages : 50
    Par défaut
    Je ne pense pas qu'il y a un bug. Le infile c'est juste une variable qui contient le nom du fichier à traiter. Elle mepermet de différencier les noms des fichiers créé, en gardant la nomenclature du fichier précédent c'est tout.
    Au fait au début cette ligne de code marchais très bien:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    of=file("%s-interfaces liees.doc" % infile,"w")
    Mais après avoir ajouté le chemin, ca ne marche plus.
    Je te rappelle que cette ligne créais le fichier en sortie, je n'ai pas vraiment besoin de l'ouvrir après l'exécution

  8. #8
    Membre émérite
    Avatar de Antoine_935
    Profil pro
    Développeur web/mobile
    Inscrit en
    Juillet 2006
    Messages
    883
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur web/mobile

    Informations forums :
    Inscription : Juillet 2006
    Messages : 883
    Par défaut
    Ahem...
    Fais quand même

  9. #9
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Mai 2009
    Messages
    50
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2009
    Messages : 50
    Par défaut
    Aucune différence

  10. #10
    Membre émérite
    Avatar de Antoine_935
    Profil pro
    Développeur web/mobile
    Inscrit en
    Juillet 2006
    Messages
    883
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur web/mobile

    Informations forums :
    Inscription : Juillet 2006
    Messages : 883
    Par défaut
    Evidemment qu'il n'y a pas de différence dans l'ouverture, c'est juste un print...
    Je voudrais juste te faire afficher le contenu de cette variable: le bug est là.

  11. #11
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Mai 2009
    Messages
    50
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2009
    Messages : 50
    Par défaut
    Je parle de l'affichage, il n'ya rien qui change

    En réessayant avec l'ancienne méthode dans le même répértoire que les fichiers d'origine, les fichiers s'affichent correctement, c'est pour cela que je ne crois pas que se soit un bug !

  12. #12
    Membre émérite
    Avatar de Antoine_935
    Profil pro
    Développeur web/mobile
    Inscrit en
    Juillet 2006
    Messages
    883
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur web/mobile

    Informations forums :
    Inscription : Juillet 2006
    Messages : 883
    Par défaut
    Non, je peux t'assurer qu'il y a quelque chose dans ta variable infile dans la fonction write.
    Ou alors l'erreur que tu as rapporté ne se lève pas dans write.

  13. #13
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Mai 2009
    Messages
    50
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2009
    Messages : 50
    Par défaut
    Je suis bloqué, je n'avance plus depuis des heures....
    La variable infile en plus de cela n'est présente dans aucune ligne qui précède ou suit ce paragraphe... Donc si ca marche en premier ca doir marcher en deuxième exemple

  14. #14
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Mai 2009
    Messages
    50
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2009
    Messages : 50
    Par défaut
    C'est bon j'ai réussis à régler le problème

    Voici le code pour qui ca interesse:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    nom=os.path.split(infile)[1] 
    outfile=os.path.join("C:/Documents and Settings/All Users/output","%s-interfaces non liees.doc" % nom) 
    of=open(outfile,"w" )
    Il suffisait en fait de calculer le chemin du fichier de sortie selon mes besoins
    Merci en tout cas

  15. #15
    Membre émérite
    Avatar de Antoine_935
    Profil pro
    Développeur web/mobile
    Inscrit en
    Juillet 2006
    Messages
    883
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur web/mobile

    Informations forums :
    Inscription : Juillet 2006
    Messages : 883
    Par défaut
    Voila... c'est bien là que je voulais en venir

    Boah, le principal c'est que tu aies compris...

  16. #16
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Mai 2009
    Messages
    50
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2009
    Messages : 50
    Par défaut
    Oui mais malgré cela, il continue à générer des fichiers doc dans le répétoire d'origine en plus du nouveau et je ne sais pas pourquoi

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 08/11/2005, 18h03
  2. comment ne pas enregistrer dans le fichier log?
    Par trotters213 dans le forum MS SQL Server
    Réponses: 14
    Dernier message: 21/03/2005, 14h56
  3. [LG]Enregistrements dans un fichier
    Par ticoude dans le forum Langage
    Réponses: 1
    Dernier message: 26/11/2004, 18h33
  4. [LG]supprimer un enregistrement dans un fichier
    Par Marcus2211 dans le forum Langage
    Réponses: 10
    Dernier message: 17/11/2003, 00h59
  5. enregistrer dans un fichier avec une appli mdi
    Par ferrari dans le forum C++Builder
    Réponses: 4
    Dernier message: 05/05/2002, 15h17

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