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 :

Tri d'un fichier texte


Sujet :

Python

  1. #41
    Membre éclairé
    Homme Profil pro
    heu...
    Inscrit en
    Octobre 2007
    Messages
    648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : heu...

    Informations forums :
    Inscription : Octobre 2007
    Messages : 648
    Points : 773
    Points
    773
    Par défaut
    Alors.. dans ce cas, voici ce que je te propose :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    lieu="TB1519"
    date = datetime.date.today().strftime("%d%m%Y")
     
    txt=''
    for fichier in [x for x in os.listdir("repertoire de recherche") if lieu+"_"+ date in x]:
       txt+=''.join([ligne for ligne in file(fichier) if 'nvoSpaceTemp' in ligne and not 18 < float(ligne.split()[-1]) < 27])+'\n'
     
    fichier_dest=open('FichierDeDestination','w')
    fichier_dest.write(txt)
    fichier_dest.close()

  2. #42
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 54
    Points : 9
    Points
    9
    Par défaut
    bonsoir

    N.tox j'ai tester ton code mais il y a comme un petit probleme, j'obtient cette erreur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Traceback (most recent call last):
      File "test11.py", line 14, in <module>
        txt+=''.join([ligne for ligne in file(fichier) if 'nvoSpaceTemp' in ligne and not 18 < float(ligne.split()[-1]) < 27])+'\n'
    IOError: [Errno 2] No such file or directory: 'TB1519_17062008_0720.txt'
    j'ai bien le fichier TB1519_17062008_0720.txt dans mon repertoire, vu qu'il trouve le nom complet du fichier.

  3. #43
    Membre éclairé
    Homme Profil pro
    heu...
    Inscrit en
    Octobre 2007
    Messages
    648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : heu...

    Informations forums :
    Inscription : Octobre 2007
    Messages : 648
    Points : 773
    Points
    773
    Par défaut
    En fait, l'erreur provient surement de la première liste, celle qui doit collecter les noms de fichiers, test donc ceci et donnes-nous le contenu s'il te plait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for fichier in [x for x in os.listdir("repertoire de recherche") if lieu+"_"+ date in x]: print fichier
    normalement, fichier devrait être le chemin complet de chaque fichier, genre 'd:/monDossier/toto.txt'...

  4. #44
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 54
    Points : 9
    Points
    9
    Par défaut
    J'ai tester cette parti du code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    for fichier in [x for x in os.listdir("repertoire de recherche") if lieu+"_"+ date in x]: print fichier
    mais en reponse j'ai rien pas de valeur et pas d'erreur.

  5. #45
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 54
    Points : 9
    Points
    9
    Par défaut
    bonjour,

    j'ai trouver

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
    lieu="TB1519"
    date = datetime.date.today().strftime("%d%m%Y")
     
    txt=''
    for fichier in [x for x in glob.glob("fichier recherche/*") if lieu+"_"+ date in x]:
       txt+=''.join([ligne for ligne in file(fichier) if 'nvoSpaceTemp' in ligne and not 18 < float(ligne.split()[-1]) < 27])
     
    fichier_dest=open('FichierDeDestination','w')
    fichier_dest.write(txt)
    fichier_dest.close()

  6. #46
    Membre éclairé
    Homme Profil pro
    heu...
    Inscrit en
    Octobre 2007
    Messages
    648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : heu...

    Informations forums :
    Inscription : Octobre 2007
    Messages : 648
    Points : 773
    Points
    773
    Par défaut
    Citation Envoyé par defcom60 Voir le message
    J'ai tester cette parti du code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    for fichier in [x for x in os.listdir("repertoire de recherche") if lieu+"_"+ date in x]: print fichier
    mais en réponse j'ai rien pas de valeur et pas d'erreur.
    Etrange... juste parce que j'aime bien savoir d'où viennent les erreurs , tu pourrais essayer presque le même code mais avec un '/' à la fin : si tu exécute le script depuis le dossier où se trouve les fichiers, met './' à la place de "répertoire de recherche",
    sinon, commence le chemin vers le répertoire de recherche par './' et continu le chemin en mettant le dossier de recherche suivit d'un '/'.
    ex: './data/'

    './' représente le répertoire courant : le répertoire depuis lequel tu as appelé le script python, si tu exécutes ton script python directement depuis le répertoire où se trouve les fichiers à créer, le répertoire à indiquer peut être:
    ¤ le chemin complet du dossier
    ¤ ./

    sinon si tes dossiers se présentent de la manière suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Programm
          |_data
          |    |_[fichiers à trier]
          |_script.py
    alors le chemin du dossier contenant les fichiers à trier peut être:
    ¤ le chemin complet du dossier
    ¤ ./data/

  7. #47
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 54
    Points : 9
    Points
    9
    Par défaut
    Bonjour,

    ton code fonctionne mais a une condition que le script ce trouve dans le meme répertoire que les fichiers à traité.

    en regardant dans le FAQ il y a un exemple http://python.developpez.com/faq/?pa...sListeFichiers

    Avec la methode glob.glob() on récupére le chemin complet et les noms des fichiers et avec l'autre fonction on récupére que le nom des fichiers sens le chemin.

    Merci pour ton aide N.tox

  8. #48
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 54
    Points : 9
    Points
    9
    Par défaut
    encore une petite question

    comment ecrire en un ligne le code suivant pour l'intégré au script précédent a la place températures x<18 x>27.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
    f = open("MONFICHIER2.TXT","r")
    frec = open("sortie2.txt","w")
    for ln in f:
        if ln.count("CLVCPTB15001")==1 and ln.count("nvoSpaceTemp")==1:
            frec.write(ln)
    f.close()
    frec.close()

  9. #49
    Membre éclairé
    Homme Profil pro
    heu...
    Inscrit en
    Octobre 2007
    Messages
    648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : heu...

    Informations forums :
    Inscription : Octobre 2007
    Messages : 648
    Points : 773
    Points
    773
    Par défaut
    Avec la methode glob.glob() on récupére le chemin complet et les noms des fichiers et avec l'autre fonction on récupére que le nom des fichiers sens le chemin.
    Tiens oui! Je ne sais pas pourquoi j'étais persuadé que ça retournait le chemin complet... bon, histoire de dire... même si c'est inutile maintenant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    lieu="TB1519"
    date = datetime.date.today().strftime("%d%m%Y")
     
    txt=''
    for fichier in [x for x in os.listdir("./repertoire de recherche/") if lieu+"_"+ date in x]:
       txt+=''.join([ligne for ligne in file("./repertoire de recherche/"+fichier) if 'nvoSpaceTemp' in ligne and not 18 < float(ligne.split()[-1]) < 27])+'\n'
     
    fichier_dest=open('FichierDeDestination','w')
    fichier_dest.write(txt)
    fichier_dest.close()
    Ceci devrait -normalement- marcher...

  10. #50
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 54
    Points : 9
    Points
    9
    Par défaut
    Bonjour,


    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
     
     
    lieu="TB1519"
    date = datetime.date.today().strftime("%d%m%Y")
     
    txt=''
    for fichier in [x for x in glob.glob("fichier recherche/*") if lieu+"_"+ date in x]:
       txt+=''.join(  autre filtre )
     
    fichier_dest=open('FichierDeDestination','w')
    fichier_dest.write(txt)
    fichier_dest.close()
     
     
    autre filtre 
     
    f = open(fichier,"r")
       for ln in f:
       	if ln.count("CLVCPTB15002")==1 and ln.count("nvoSpaceTemp")==1:
        		print ln
       f.close()

    je n'arrive pas à réecrire l'autre filtre pour qui s'intégre au programme

  11. #51
    Membre éclairé
    Homme Profil pro
    heu...
    Inscrit en
    Octobre 2007
    Messages
    648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : heu...

    Informations forums :
    Inscription : Octobre 2007
    Messages : 648
    Points : 773
    Points
    773
    Par défaut
    Salut, voici la comprehension list que tu peux mettre dans join()
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [ln for ln in file(fichier) if ln.count("CLVCPTB15002")==1 and ln.count("nvoSpaceTemp")==1]
    Toutefois si dans une ligne, il n'y aura jamais plus d'une fois "CLVCPTB15002" et "nvoSpaceTemp", je te propose ceci, qui est -je crois- un poil plus rapide
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [ln for ln in file(fichier) if "CLVCPTB15002" in ln and "nvoSpaceTemp" in ln]

  12. #52
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 54
    Points : 9
    Points
    9
    Par défaut
    Comment faire pour trié un fichier txt.

    en exécutant le script j'obtient un fichier qui ce presente de la sorte

    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
    19/06/08	10:00:09	CLVCPTB15002	nvoSpaceTemp	24.01
     
    19/06/08	12:00:07	CLVCPTB15002	nvoSpaceTemp	24.01
     
    19/06/08	08:20:10	CLVCPTB15002	nvoSpaceTemp	23.97
     
    19/06/08	09:00:04	CLVCPTB15002	nvoSpaceTemp	23.97
     
    19/06/08	09:40:07	CLVCPTB15002	nvoSpaceTemp	24.13
     
    19/06/08	08:00:07	CLVCPTB15002	nvoSpaceTemp	23.97
     
    19/06/08	15:00:09	CLVCPTB15002	nvoSpaceTemp	24.01
     
    19/06/08	09:20:06	CLVCPTB15002	nvoSpaceTemp	24.13
     
    19/06/08	14:20:07	CLVCPTB15002	nvoSpaceTemp	24.01
     
    19/06/08	11:00:04	CLVCPTB15002	nvoSpaceTemp	24.01
     
    19/06/08	06:00:09	CLVCPTB15002	nvoSpaceTemp	23.97
     
    19/06/08	07:20:04	CLVCPTB15002	nvoSpaceTemp	23.97
     
    19/06/08	14:40:08	CLVCPTB15002	nvoSpaceTemp	24.01
     
    19/06/08	12:20:08	CLVCPTB15002	nvoSpaceTemp	24.01
     
    19/06/08	11:40:07	CLVCPTB15002	nvoSpaceTemp	24.01
     
    19/06/08	07:00:11	CLVCPTB15002	nvoSpaceTemp	23.97
     
    19/06/08	13:20:11	CLVCPTB15002	nvoSpaceTemp	23.88
    je voudrais trié le fichier par heure.
    par la suite je voudrais utiliser la librairie matplotlib pour tracer des graphiques.

  13. #53
    Membre éclairé
    Homme Profil pro
    heu...
    Inscrit en
    Octobre 2007
    Messages
    648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : heu...

    Informations forums :
    Inscription : Octobre 2007
    Messages : 648
    Points : 773
    Points
    773
    Par défaut
    pour trier ton fichier par heure, on peut le trier avant de le créer:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    lieu="TB1519"
    date = datetime.date.today().strftime("%d%m%Y")
     
    txt=[]
    for fichier in [x for x in glob.glob("fichier recherche/*") if lieu+"_"+ date in x]:
       txt+=[ln for ln in file(fichier) if "CLVCPTB15002" in ln and "nvoSpaceTemp" in ln]
    txt.sort()
     
    fichier_dest=open('FichierDeDestination','w')
    fichier_dest.write(''.join(txt))
    fichier_dest.close()
    Par contre je ne connais pas matplotlib, mais je sais que tu peux faire un graphique avec le canvas de Tkinter.

  14. #54
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 54
    Points : 9
    Points
    9
    Par défaut
    Bonjour,

    je cherche à liste les repertoires pour apres les consulter un par un comme pour les fichiers.

    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
     
    import os
    import datetime
    import os.path
    import glob
     
     
    def trievcp(repertoire):
        date = datetime.date.today().strftime("%d%m%Y")
        txt=[]
        for fichier in [x for x in glob.glob(repertoire + "/*") if "TB1519" + "_" + date in x]:
           txt+=[ln for ln in file(fichier) if ln.count("CLVCP" + "TB15002")==1 and ln.count("nvoSpaceTemp")==1]
        txt.sort()
     
        fichier_dest=open('FichierDeDestination','w')
        fichier_dest.write("".join(txt))
        fichier_dest.close()
     
    rep=[]
    for repert in [os.listdir("repertoire de recherche")]:
        rep+= trievcp(repert)

    ma liste rep me renvoie bien le nom de mais repertoire c'est a dire:
    TA0004 TA0509 TA1014 TA1519 TB004 TB0509 TB1014 TB1519.

    mais ca bloque par la suite.

  15. #55
    Membre éclairé
    Homme Profil pro
    heu...
    Inscrit en
    Octobre 2007
    Messages
    648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : heu...

    Informations forums :
    Inscription : Octobre 2007
    Messages : 648
    Points : 773
    Points
    773
    Par défaut
    quel est le chemin complet de ton script ou le chemin complet depuis lequel tu exécute ton script ?
    Ensuite, quel le chemin complet du répertoire dans lequel tu lance la recherche d'autres répertoire ?

    Et si tu peux, serait-il possible d'avoir un schéma de l'arborescence du dossier de ton programme et du répertoire de recherche jusqu'au parent commun s'il te plait?

  16. #56
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 54
    Points : 9
    Points
    9
    Par défaut
    bonjour,


    Pour le chemin du programme ça depend d'ou je l'execute car il va etre sur plusieurs machine.

    pour l'arboresence du repertoire de recherche cela ce presente de la maniere suivante:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    |
    |------> Concentrateur
               |------TA0004
               |------ TA0509
               |-------TA1014
               |--------TB004
               |--------TB1519
                             |------------TB1519_05032008_0700.txt
                             |------------TB1519_05032008_0720.txt
    je viens de pensée à quelque chose il faut peut etre que j'utilse la fonction glob pour recupérer le chemin complet et pas que les noms du repertoire de recherche.

    par la suite le chemin de recherche sera parametrable .

    petit modif du code

    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
     
    def trievcp(repertoire):
        date = datetime.date.today().strftime("%d%m%Y")
        txt=[]
        for fichier in [x for x in glob.glob(repertoire + "/*") if "TB1519" + "_" + date in x]:
           txt+=[ln for ln in file(fichier) if ln.count("CLVCP" + "TB15002")==1 and ln.count("nvoSpaceTemp")==1]
        txt.sort()
     
        fichier_dest=open('FichierDeDestination','w')
        fichier_dest.write("".join(txt))
        fichier_dest.close()
     
    rep=[]
    for repert in [(glob.glob("repertoire de recherche" +/*"))]:
        rep+= [trievcp (str( repert) )]
    en utilisant glob j'ai bien le chemin complet du repertoire.
    j'ai rajouter str(repert) car sinon en exécutant j'ai cette erreur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Traceback (most recent call last):
      File "testrep.py", line 20, in <module>
        rep+= [trievcp(repert)]
      File "testrep.py", line 10, in trievcp
        for fichier in [x for x in glob.glob(repertoire + "/*") if "TB1519" + "_" + date in x]:
    TypeError: can only concatenate list (not "str") to list
    ca avance mais c'est pas encore ça.

  17. #57
    Membre éclairé
    Homme Profil pro
    heu...
    Inscrit en
    Octobre 2007
    Messages
    648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : heu...

    Informations forums :
    Inscription : Octobre 2007
    Messages : 648
    Points : 773
    Points
    773
    Par défaut
    hmmm... ok, en partant du principe que ton script est positionné au même niveau que ton dossier concentrateur (le chemin de ton script sera-t-il toujours plcé au même endroit par rapport au dossier de recherche ?)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    |------TonScript.py
    |------ Concentrateur
               |------TA0004
               |------ TA0509
               |-------TA1014
               |--------TB004
               |--------TB1519
                             |------------TB1519_05032008_0700.txt
                             |------------TB1519_05032008_0720.txt
    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
    def trievcp(repertoire):
        date = datetime.date.today().strftime("%d%m%Y")
        txt=[]
        for fichier in [repertoire+x for x in os.listdir(repertoire) if "TB1519" + "_" + date in x]:
           txt+=[ln for ln in file(fichier) if ln.count("CLVCP" + "TB15002")==1 and ln.count("nvoSpaceTemp")==1]
        if txt[-1][-1]!='\n': txt[-1]+='\n'
        txt.sort()
        return txt
     
    rep=[]
    for repert in ["./Concentrateur/"+x+'/' for x in os.listdir("./Concentrateur/") if os.path.isdir('./Concentrateur/'+x+'/')==True]:
            rep+=trievcp(repert)
     
    fichier_dest=open('FichierDeDestination','w')
    fichier_dest.write("".join(rep))
    fichier_dest.close()
    Voilà, désolé d'avoir remplacer les glob, c'est juste que je sais pas m'en servir...

    EDIT: j'viens de remarquer un truc avzc ce qu'il y a de marqué dans cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for fichier in [repertoire+x for x in os.listdir(repertoire) if "TB1519" + "_" + date in x]:
    et vu comment sont organisés les dossiers, c'est comme si t'effectuait un simple recherche dans le dossier TB1519... je suppose que tu voudrais qu'en fait, la recherche s'effectue dans tous les dossiers, et collecte les fichiers du jour, auquel cas il suffit de virer "TB1519" de la ligne sus-citée, sinon il faudra sûrement remplcé ce string par une variable passée comme deuxième argument de ta fonction...

    EDIT2: j'me suis un peu amusé avec ton code... ne connaisant pas exactement tes besoins, je ne sais pas si ce code te conviendra, mais ça pourrait te donner quelques idées :
    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 trievcp(repertoire,emplacement):
        date = datetime.date.today().strftime("%d%m%Y")
        txt=[]
        for repert in [repertoire+x+'/' for x in os.listdir(repertoire) if os.path.isdir(repertoire+x+'/')==True]:
            for fichier in [repert+x for x in os.listdir(repert) if emplacement + "_" + date in x]:
               txt+=[ln for ln in file(fichier) if ln.count("CLVCPTB15002")==1 and ln.count("nvoSpaceTemp")==1]
            if txt[-1][-1] != '\n': txt[-1]+='\n'
        txt.sort()
        return txt
     
    def write(filename,text):
        f_dest=open(filename,'w')
        f_dest.write(text)
        f_dest.close()
     
     
    write('FichierDeDestination',''.join(trievcp('./Concentrateur/','TB1519')))

  18. #58
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 54
    Points : 9
    Points
    9
    Par défaut
    merci pour ton aide n.tox

    les deux propositions de code que tu m'a faite ne fonctionne pas


    mais en cherchant et m'inspirant de ton code j'ai réussi a obtenir cela

    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
     
    import os
    import datetime
    import os.path
    import glob
     
    tempmini = 18
    tempmax = 27
    date = datetime.date.today().strftime("%d%m%Y")
    txt=[]
    for fichier in [x for x in glob.glob("/home/defcom/Documents/test python/tutorial/Concentrateur/" + "/*/"+"TB*"+ "*.txt")]:
        txt+=[ligne for ligne in file(fichier) if "nvoSpaceTemp" in ligne and not tempmini < float(ligne.split()[-1]) < tempmax]
    print fichier
    txt.sort()
     
    fichier_dest=open('FichierDeDestination','w')
    fichier_dest.write("".join(txt))
    fichier_dest.close()
    pour le moment cela fonctionne mais je voudrais crée une fonction.

    je veut remplacer "/home/defcom/Documents/test python/tutorial/Concentrateur/" par repertoire
    "TB*" par tour

    tu as parfaitement compris ce que je désir faire.

  19. #59
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 54
    Points : 9
    Points
    9
    Par défaut
    j'ai un peu avancée

    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
     
    import os
    import datetime
    import os.path
    import glob
     
    date = datetime.date.today().strftime("%d%m%Y")
     
    def trievcp(repertoire,tour,etage,date,heure,tempmini,tempmaxi):
        txt=[]
        for fichier in [x for x in glob.glob(repertoire + "/*/"+ tour + etage +"_"+date+"_"+heure+ "*.txt")]:
            txt+=[ligne for ligne in file(fichier) if "nvoSpaceTemp" in ligne and not tempmini < float(ligne.split()[-1]) < tempmaxi]
        print fichier
        txt.sort()
        fichier_dest=open("FichierDeDestination","w")
        fichier_dest.write("".join(txt))
        fichier_dest.close()
        return txt
     
     
    trievcp("/home/defcom/Documents/test python/tutorial/Concentrateur","*","*",date,"*",23,27)
    il y a peu être encore quelque amélioration à apporter.

  20. #60
    Membre du Club Avatar de stuffy
    Étudiant
    Inscrit en
    Juin 2008
    Messages
    70
    Détails du profil
    Informations personnelles :
    Âge : 30

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2008
    Messages : 70
    Points : 49
    Points
    49
    Par défaut
    Tu peut :

    1/ ouvrir ton fichier a analyser en mode readlines()
    2/cela va créer une liste ex: fichier_stand qui contient ton texte
    3/ chercher "Standby" grâce a if "Standby" in fichier_stand
    4/ tu pose la condition que tu veut
    ===========================
    #
    # Windows xp pour développer
    # Linux Ubuntu pour développer
    # Osx Mobile pour se relaxer
    #
    ===========================

Discussions similaires

  1. [Turbo Pascal] Tri d'un fichier texte selon la longueur de chaque ligne
    Par Almoez dans le forum Turbo Pascal
    Réponses: 5
    Dernier message: 19/10/2012, 18h03
  2. tri d'un fichier text
    Par dark_nights dans le forum C++
    Réponses: 9
    Dernier message: 21/01/2009, 17h34
  3. Tri d'un fichier texte, commande sort
    Par fantomas261 dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 16/04/2007, 16h01
  4. tri d'un fichier texte
    Par ben127 dans le forum C
    Réponses: 7
    Dernier message: 23/12/2005, 20h03
  5. Réponses: 4
    Dernier message: 16/12/2005, 17h43

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