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 :

extraire colonne python3


Sujet :

Python

  1. #21
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 790
    Par défaut
    Salut,

    Si vous voulez ajouter une liste à deux éléments à chaque itération, il faut construire la liste à ajouter avec les éléments choisis puis ajouter la liste (plutôt qu'ajouter les éléments).

    Poster du code comme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    		if line.startswith('PICK'):
    			l = line.split(' ')
    			d.append(line[3])
    			d.append(line[5])
    est une très bonne idée mais relisez le avant car ce n'est pas la bonne version (celle qui fait la sortie que vous présentez: line n'est pas l...).

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  2. #22
    Membre Expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 912
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 912
    Par défaut
    Salut,

    Est-ce cela fonctionne vraiment avec l = line.split(' ') ?


    Citation Envoyé par Beginner. Voir le message
    Sinon il y aura peut-être aussi un problème par rapport à la ligne 6 l = line.split(' ') car il se peut que les données ne soit pas séparées par un seul espace... D'ailleurs il y a plusieurs espaces entre les données dans le texte posté par judkil... Dans le fichier il se peut que ce soit une tabulation...

  3. #23
    Membre actif
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2019
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2019
    Messages : 107
    Par défaut
    J'ai retiré cette ligne car cela ne marchait pas

  4. #24
    Membre actif
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2019
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2019
    Messages : 107
    Par défaut
    J'obtiens
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      ['N', 'VAL', 'CA',  'VAL']
    et non
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [['N', 'VAL'],['CA',  'VAL']]

  5. #25
    Expert confirmé Avatar de BufferBob
    Profil pro
    responsable R&D vidage de truites
    Inscrit en
    Novembre 2010
    Messages
    3 041
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : responsable R&D vidage de truites

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3 041
    Par défaut
    salut,

    Citation Envoyé par judkil Voir le message
    extraire uniquement les lignes avec PICK et les colonnes 3, 4, 6, 7, 8 et 9 (...) Puis convertir la colonne 6 en entier, et mettre les 3 dernières colonnes en format décimal car tout est par défaut en chaîne de caractères. (...) stocké (...) dans une liste nommé liste_atomes
    je choisis de te répondre.

    un truc comme ça devrait fonctionner :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    import re
     
    liste_atomes = []
    with open('donnees.txt', 'r') as f:
        for line in f:
            if line.startswith('PICK'):
                l = re.split(r'[\s]+', line.rstrip())[2:10]
                l = l[:2] + l[3:]
                l[2] = int(l[2])
                l[3:] = map(float, l[3:])
                liste_atomes.append(l)
    et le résultat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    [['N', 'VAL', 1, 10.72, 19.523, 6.163],
     ['CA', 'VAL', 1, 10.228, 20.761, 6.807],
     ['C', 'VAL', 1, 8.705, 20.714, 6.878],
     ['O', 'VAL', 1, 8.164, 20.005, 6.015],
     ['CB', 'VAL', 1, 10.602, 22.0, 5.966],
     ['CG1', 'VAL', 1, 10.307, 23.296, 6.7],
     ['CG2', 'VAL', 1, 12.065, 21.951, 5.544]]
    la compréhension du code est laissée en exercice, si ça t'intéresse.

  6. #26
    Membre actif
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2019
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2019
    Messages : 107
    Par défaut
    Oui merci je suis en train de le lire lignes par lignes.....

  7. #27
    Membre actif
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2019
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2019
    Messages : 107
    Par défaut
    Je pense que je n'ai pas toute à fait bien présenter le problème

    Voici le input
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Voici la position des string pour extraire les chaine de caractere
    [0:6]  [6:11] [12:16] [17:20] [21:22] [22:26] [30:38] [38:46] [46:54]
    PICK   1291    C       ASP     B       275     36.749  95.634  34.461
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    PICK   1288  ND2 ASN B 274      36.786  93.769  29.079
    PICK   1289  N   ASP B 275      36.697  93.705  32.859
    PICK   1290  CA  ASP B 275      37.362  94.316  34.010
    PICK   1291  C   ASP B 275      36.749  95.634  34.461
    PICK   1292  O   ASP B 275      36.698  95.930  35.652
    PICK   1293  CB  ASP B 275      38.837  94.563  33.695
    PICK   1294  CG  ASP B 275      39.609  93.283  33.449
    PICK   1295  OD1 ASP B 275      39.558  92.378  34.313
    PICK   1296  OD2 ASP B 275      40.277  93.192  32.395
    PICK   1297  N   ASN B 276      36.311  96.431  33.496
    HETPCK 1587 ZN    ZN A 501      45.429  65.126  31.470
    HETPCK 1588 ZN    ZN B 502      17.304  93.631  37.510

Discussions similaires

  1. Tableur, extraire colonne nom PDF et nombre de pages
    Par drakolecho dans le forum OpenOffice & LibreOffice
    Réponses: 3
    Dernier message: 11/10/2018, 15h51
  2. Extraire colonne d'un rectangular array
    Par Silver326 dans le forum Débuter
    Réponses: 1
    Dernier message: 21/05/2009, 22h49
  3. [VBA] Extraire colonne dans presse papier
    Par Léponge85 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 11/06/2008, 12h55
  4. Réponses: 3
    Dernier message: 06/11/2006, 09h14
  5. SELECT : extraire 2 val d'1 colonne avec contraintes diff
    Par NiBicUs dans le forum Langage SQL
    Réponses: 3
    Dernier message: 29/03/2004, 15h56

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