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 :

Correspondance entre du texte et des données


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Décembre 2017
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Technicien réseau
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2017
    Messages : 53
    Par défaut Correspondance entre du texte et des données
    Bonjour,

    j'aimerais faire correspondre du texte d'un fichier avec des données d'un autre fichier.

    En gros, à partir d'un fichier texte (ci-dessous), j'aimerais que la partie ("idBatiment" : Volume) du fichier ne soit pas juste du texte mais qu'il corresponde à des données.

    [
    {
    "identification": {
    "producer": "<reseau>"
    },
    "coordinates": {
    "timestamp": "1512479309"
    },
    "meta": {
    "name": "<consoBatiment>",
    "tags": {
    }
    },
    "values": {
    "idBatiment" : Volume,
    }
    }
    ]


    Ses données sont de la forme :

    094200 39.04&nbsp;MB
    095500 58.79&nbsp;MB
    053700 27.46&nbsp;MB
    082000 70.58&nbsp;MB
    073800 26.95&nbsp;MB
    096200 216.76&nbsp;MB
    075100 14.48&nbsp;MB
    052300 27.02&nbsp;MB
    058700 19.22&nbsp;MB
    058300 15.43&nbsp;MB
    052800 35.13&nbsp;MB
    018000 15.29&nbsp;MB
    000000 16.13&nbsp;MB
    060500 1.10&nbsp;KB
    060600 1.10&nbsp;KB
    061600 1.09&nbsp;KB
    063300 1.04&nbsp;KB
    063500 1.10&nbsp;KB

    La première colonne du fichier ci-dessus correspond à l'idBatiment du premier fichier et la deuxième colonne du fichier ci-dessus correspond au Volume du premier fichier.

    Est-ce possible de faire correspondre le texte du fichier 1 avec les données du fichier 2 ? Si oui, pouvez-vous m'aider à faire correspondre le texte du premier fichier "idBatiment" : Volume avec les données du deuxième fichier ?

    Merci d'avance et bonne journée !

    PS : je débute en python

  2. #2
    Membre averti
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Décembre 2017
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Technicien réseau
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2017
    Messages : 53
    Par défaut
    J'ai besoin de remplacer le texte par les données, personne ne peut m'aider ?

    J'ai essayer en ouvrant le fichier en lecture et en faisant un .replace sur le texte pour le remplacer par les données mais il n'y a que la première ou la dernière donnée qui est inscrite à la place du texte.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    795
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 795
    Par défaut
    Bonjour

    Montre nous ton code et précise un peu ce que tu attend en résultat. J'ai du mal à comprendre comment tu fais le rapprochement ?

  4. #4
    Membre averti
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Décembre 2017
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Technicien réseau
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2017
    Messages : 53
    Par défaut
    Mon code pour le moment :

    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
     
     
    # ouverture du fichier avec le format
    s = open("fichier_tmp3","r")
     
    #ouverture du fichier contenant les donnees
    t = open("fichier-donnee","r")
     
     
    for line in s:
     
     
    	for ligne in t:
    		#Divise le fichier des donnees en 2 parties grace a l'espace	
    		ligne = ligne.rstrip().split(" ")
    		#affiche l'id : la valeur
    		print ligne[1]	+ " : " + ligne[2]		
     
    	#Remplace le texte par les donnees
    	line = line.replace(' "idCaisse" : Volume, ', ligne[1] + " : " + ligne[2] )
    	print line 
     
     
    s.close()
    t.close()









    Voici le resultat :

    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
     
     
    056100 : 386578513.92
    058400 : 230235832.32
    051600 : 286103961.6
    051800 : 214349905.92
    052300 : 271130296.32
    094200 : 262206914.56
    075800 : 207953592.32
    052800 : 280903024.64
    053000 : 179589611.52
    053700 : 260308992.0
    058900 : 117220311.04
    061600 : 101659443.2
    082000 : 267932139.52
    050500 : 77825310.72
    000000 : 121372672.0
    [ 
     
      { 
     
        "identification": {  
     
         "producer": "<network.infra>"  
     
        }, 
     
        "coordinates": { 
     
          "timestamp": "1512479309"  
     
        }, 
     
        "meta": { 
     
          "name": "<squid.conso.caisse>", 
     
          "tags": { 
     
          } 
     
        }, 
     
        "values": { 
     
        000000 : 121372672.0
     
        } 
     
      } 
     
    ]








    Donc la valeur 000000 : 121372672.0 est la dernière donnée récupérée et c'est la seule que j'arrive à afficher, j'aimerais afficher en gros :


    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
     
     
    [ 
     
      { 
     
        "identification": {  
     
         "producer": "<network.infra>"  
     
        }, 
     
        "coordinates": { 
     
          "timestamp": "1512479309"  
     
        }, 
     
        "meta": { 
     
          "name": "<squid.conso.caisse>", 
     
          "tags": { 
     
          } 
     
        }, 
     
        "values": { 
        056100 : 386578513.92
        058400 : 230235832.32
        051600 : 286103961.6
        051800 : 214349905.92
        052300 : 271130296.32
        094200 : 262206914.56
        075800 : 207953592.32
        052800 : 280903024.64
        053000 : 179589611.52
        053700 : 260308992.0
        058900 : 117220311.04
        061600 : 101659443.2
        082000 : 267932139.52
        050500 : 77825310.72
        000000 : 121372672.0
     
        } 
     
      } 
     
    ]

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    795
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 795
    Par défaut
    Je ne comprend toujours pas le rapprochement mais peut importe

    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    for ligne in t:
    	#Divise le fichier des donnees en 2 parties grace a l'espace	
    	ligne = ligne.rstrip().split(" ")
    	#affiche l'id : la valeur
    	print ligne[1]	+ " : " + ligne[2]		
     
    #Remplace le texte par les donnees
    line = line.replace(' "idCaisse" : Volume, ', ligne[1] + " : " + ligne[2] )
    print line

    Au niveau du replace; ligne[1] et ligne[2] ont pour valeur la dernière du fichier (car tu fais le replace hors de la boucle)

    Je pense qu'il suffit de cumuler les données (dans une liste ou bien en concaténant) et appliquer le replace à ce cumul et tu auras ce que tu veux

  6. #6
    Membre averti
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Décembre 2017
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Technicien réseau
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2017
    Messages : 53
    Par défaut
    Un truc comme ça ? :

    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
     
     
    for line in s:
     
     
    	for ligne in t:
    		#Divise le fichier des donnees en 2 parties grace a l'espace	
    		ligne = ligne.rstrip().split(" ")
    		#affiche l'id : la valeur
    		print ligne[1]	+ " : " + ligne[2]
    		tableau1 = []
    		tableau1.append(ligne[1]) 
    		tableau2 = []
    		tableau2.append(ligne[2])		
     
    		#Remplace le texte par les valeurs
    		line = line.replace(' "idCaisse" : Volume, ', str(tableau1) + " : " + str(tableau2))
    		print line

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

Discussions similaires

  1. Liens entres 2 tables avec des données répétées
    Par nirvana dans le forum Langage SQL
    Réponses: 4
    Dernier message: 16/07/2013, 14h06
  2. mise en correspondance entre points d'interêt des images
    Par bilzzbenzbilz dans le forum Traitement d'images
    Réponses: 12
    Dernier message: 04/10/2012, 09h04
  3. [XL-2007] Comment créer une dépendance entre deux listes avec des données issus d'un tableau?
    Par efesdark dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 04/07/2011, 16h22
  4. Réponses: 8
    Dernier message: 26/05/2010, 14h43

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