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 :

entré multiple fichiers sorti un fichier


Sujet :

Python

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 107
    Points : 50
    Points
    50
    Par défaut entré multiple fichiers sorti un fichier
    Bonjour

    j aimerai savoir s'il est possible de faire traiter tous les fichiers d un dossier via python
    et d en faire sortir qu' un seule

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    fichier_1=open("mon_fichier_1.txt")
    fichier_2=open("mon_fichier_2.txt")
    contenu_1=fichier_1.read()
    contenu_2=fichier_2.read()
    fichier_sortie=open("mon_fichier_sortie.txt","w") # ouverture en écriture du fichier résultat
    fichier_sortie.write(contenu_1 + contenu_2)
    fichier_sortie.close()
     
    # version 2
    open("mon_fichier_sortie.txt","w").write(open("mon_fichier_1.txt").read() + open("mon_fichier_2.txt").read())
    J ai deja exploré des piste pour la sorti je recupere tous les fichier de sorti et je les fusionne.
    Mais le probleme c est que dans mon bout de code le nombre de fichier est connu, comment faire qd le nombre est inconu.

    Quand a l entré j ai aucune idée

    merci pour votre aide

  2. #2
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Décembre 2007
    Messages
    758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2007
    Messages : 758
    Points : 970
    Points
    970
    Par défaut
    bonjour,

    par exemple comme ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    import glob
    fichier_sortie = open('mon_fichier_sortie.txt','w')
    for f in glob.glob('*.txt')
        data = open(f,'r').read()
        fichier_sortie.write(data)
    fichier_sortie.close()
    j'ai aps testé, mais ça doit pas être trop loin.

  3. #3
    Rédacteur
    Avatar de Zavonen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 772
    Détails du profil
    Informations personnelles :
    Âge : 76
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 772
    Points : 1 913
    Points
    1 913
    Par défaut
    Ce que tu veux faire c'est de la concaténation de fichier.
    Le problème avec les instructions du genre:
    data = open(f,'r').read()
    C'est que quand on a affaire à de gros fichiers on peut saturer la mémoire.
    Aller voir par exemple cette page:
    http://stackoverflow.com/questions/1...iles-in-python
    Ce qu'on trouve est plus important que ce qu'on cherche.
    Maths de base pour les nuls (et les autres...)

  4. #4
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Décembre 2007
    Messages
    758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2007
    Messages : 758
    Points : 970
    Points
    970
    Par défaut
    oui oui, tout à fait, mon bout de code ne s'applique qu'à des fichiers de taille raisonnable

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 107
    Points : 50
    Points
    50
    Par défaut
    Merci de votre aide

    pour l'entree j ai pas trouver de solution

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    root = Tkinter.Tk()
    import Tkinter
    import tkFileDialog
    import os
     
    from tkFileDialog import askopenfilename
    Fichier_a_traiter = askopenfilename(filetypes = [("All", "*"),("Selection du fichier a traiter","*.fa")])
     
     
    commands.getstatusoutput('/home/m1sp/bin/decoup_CpG '+ Fichier_a_traiter + ' arbre Fichier_a_traiter.out 3 0.4 2.65 1.5 8.8 1.66')
    ce bout de code marche bien
    il me permet de selection un fichier et de le traiter via la commands.getstatusoutput par un un programme et obtenir le resultat dans un fichier de sorti

    le probleme c est ' du manuel' je choisi un fichier parmi 8000 dans un dossier

    et j aimerai traiter les 8000 fichier sans a voir a les selectionner manuellement

    d'ou ma premiere question:
    est ce possible
    si oui comment

  6. #6
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Décembre 2007
    Messages
    758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2007
    Messages : 758
    Points : 970
    Points
    970
    Par défaut
    bonjour,

    d'ou ma premiere question:
    est ce possible
    si oui comment
    tu as pas dû lire ma réponse...
    un indice tout de même: glob.

  7. #7
    Rédacteur
    Avatar de Zavonen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 772
    Détails du profil
    Informations personnelles :
    Âge : 76
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 772
    Points : 1 913
    Points
    1 913
    Par défaut
    Certainement tu n'as pas lu la réponse de Kango qui marche parfaitement pour des fichiers de taille raisonnable, ni visité le site que je te recommande.
    Ce qu'on trouve est plus important que ce qu'on cherche.
    Maths de base pour les nuls (et les autres...)

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 107
    Points : 50
    Points
    50
    Par défaut
    si j ai bien compris vos code et message
    mais il serve surtout a "fusioner" les fichier

    mais pour faire traiter un a un fichier qui se trouve dans un dossier
    on fait comment
    on m a dit supprimer l interface graphique car ca compliquait la chose
    mais je ne vois tjs pas comment on fait
    meme avec glob
    vous aurez un exemple

  9. #9
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Décembre 2007
    Messages
    758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2007
    Messages : 758
    Points : 970
    Points
    970
    Par défaut
    et bien, la fonction glob.glob de mon code te renvoie une liste de tous les fichiers .txt du répertoire courant.

    je ne vois pas ce qu'il te faut de plus, une fois que tu as une liste des noms, il n'y a plus qu'à itérer sur la liste pour faire les opérations sur les fichiers.

Discussions similaires

  1. Fichier Texte en Entrée et en Sortie
    Par _shuriken_ dans le forum WinDev
    Réponses: 24
    Dernier message: 22/06/2015, 10h15
  2. Génération fichiers plats multiples en sortie
    Par Natty dread dans le forum Informatica
    Réponses: 0
    Dernier message: 22/07/2011, 16h00
  3. Réponses: 15
    Dernier message: 28/11/2008, 17h57
  4. Réponses: 17
    Dernier message: 07/05/2008, 10h16
  5. Réponses: 4
    Dernier message: 23/11/2005, 14h25

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