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 :

extraction de chaine [Python 2.X]


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    321
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 321
    Par défaut extraction de chaine
    bonjour,

    j'ai un fichier excel qui contient ce genre de chaîne sur deux colonnes (pour la 1ère ligne)>>
    ID colonneb
    1219 [[53.27,1.80507],[53.4592316,1.039522513]]

    donc une colonne avec un id et une autre avec des paires de coordonnées (le nombre de paire est très variable)

    j'essaye d'obtenir une extraction avec un id correspondant à une paire le tout sur trois colonne
    id X Y
    1219 53.27 1.80507

    pour l'instant avec ce code , j'ai tout sur deux colonnes

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    liste=[]
    with open(table, "rb") as f:
        for ligne in csv.reader(f, delimiter=';', quoting = csv.QUOTE_NONE):
            a=ligne[1].replace('[','')
            b=a.replace(']','')
            c=b.split(',')
            liste.append((ligne[0],c))
    for row in liste:
    	liste2=row[1]
    	for rows in liste2:
    		print row[0],rows
    mes valeurs sont séparés sur deux colonnes...mais je ne vois pas comment obtenir ce que je veux??
    merci d'avance pour votre aide

  2. #2
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2016
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2016
    Messages : 132
    Par défaut
    Bonjour,

    Utilise tu xlrd pour lire ton fichier excel ?

    si j'ai bien compris ce que tu recherchais ça devrait ressembler à 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
    import xlrd
     
    def split_col(x):
        x=x[2:-2]
        return x.split("],[")
     
    book=open_workbook('name')
    sheet=book.sheet_by_index(0)
    liste=[]
    for i in range (1,sheet.nrows+1) :
        liste.append([sheet.cell(i,0).value,split_col(sheet.cell(i,1).value)])
    Apres pour la boucle for je ne sais pas trop si c'est nrows+1 ou nrows, il faut tester pour connaitre la fin.

    Attention : xlrd donne du str en value

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    321
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 321
    Par défaut
    slt,

    j'ai finit par utiliser le module csv
    merci pour ton coup de main.. c vrai que j'aurais pu splitter de cette façon "],["... ça me permet d'avoir la chaîne qu'il faut. c'était sous mes yeux
    trop


    merci

  4. #4
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2016
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2016
    Messages : 132
    Par défaut
    Citation Envoyé par bernards111 Voir le message
    c ça :
    id X Y
    1219 53.27 1.80507
    1219 53.4592316 1.0394523
    C'est assez imprécis, enfin pour moi du moins.
    Tu veux print ? 3 valeurs par lignes ?

    Si tu veux juste print (vraiment comme tu l'as dit dans ton message) :
    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 split_col(x):
        x=x[2:-2]
        return x.split("],[")
     
    Liste='1219 [[53.27,1.80507],[53.4592316,1.0394523]]'
    temp=Liste.split(' ')
     
    indice=int(temp[0])
    x=split_col(temp[1])[0]
    y=split_col(temp[1])[1]
     
    a,b=x.split(',')
    c,d=y.split(',')
     
    print(indice,a,b)
    print(indice,c,d)

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    321
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 321
    Par défaut
    désolé j'ai mis à jour mon message précédent :-)

    merci

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

Discussions similaires

  1. Extraction de chaine de caractères
    Par asterix76-rouen dans le forum Langage
    Réponses: 4
    Dernier message: 20/12/2006, 23h17
  2. Extraction de chaine
    Par Daniel MOREAU dans le forum VBA Access
    Réponses: 6
    Dernier message: 14/02/2006, 09h01
  3. Requete avec extraction de chaine
    Par bestall666 dans le forum Access
    Réponses: 8
    Dernier message: 04/02/2006, 18h17
  4. [String]Extraction de chaîne
    Par sangei dans le forum Langage
    Réponses: 6
    Dernier message: 19/12/2005, 11h25
  5. [XSLT] Extraction de chaine de caractere
    Par Hugo001 dans le forum XSL/XSLT/XPATH
    Réponses: 11
    Dernier message: 28/10/2004, 08h27

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