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 :

Tranformer un fichier texte en liste


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2008
    Messages
    11
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 11
    Par défaut Tranformer un fichier texte en liste
    Bonjour à tous,

    J'aimerais transformer un fichier texte en liste.

    Le problème c'est que je n'arrive pas à enlever les retours chariots qui apparaissent comme celà dans ma liste :

    ['2\n', '3\n', '5\n', '7\n', '11\n', '13\n', '17\n', '19\n']

    Je voudrais garder les nombres uniquement au format nombres entiers

    Merci

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    271
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 271
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    [ x.strip() for x in ['2\n', '3\n', '5\n', '7\n', '11\n', '13\n', '17\n', '19\n'] ]
    Retourne une liste de chaines de caractères.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    [ int(x) for x in ['2\n', '3\n', '5\n', '7\n', '11\n', '13\n', '17\n', '19\n'] ]
    Retourne une liste d'entier mais attention tu peux avoir une exception lors du cast int(x) si l'une des valeurs de la liste ne peut être casté en entier.

    Et enfin une méthode qui teste d'abord si la chaine de caractères est une suite d'entiers avant de caster en int :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    [ int(x) for x in ['2\n', '3\n', '5\n', '7\n', '11\n', '13\n', '17\n', '19\n'] if x.strip().isdigit() ]

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 418
    Par défaut
    Il vaut mieux , je trouve, créer la liste directement sans les retours de ligne sans se préoccuper de ce qu'il y a dans la ligne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    list = f.read().splitlines()
    splitlines() enleve les retours à la ligne


    Ou alors:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    for ln in f:
        list.append(ln[0:-1])
    Ou:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    list = ['2\n', '3\n', '5\n', '7\n', '11\n', '13\n', '17\n', '19\n']
    listmod =  [x[0:-1] for x in list]

Discussions similaires

  1. convertir fichier texte en liste de données
    Par rc_64500 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 11/12/2012, 14h05
  2. Fichier texte et liste déroulante
    Par pat100 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 23/11/2012, 14h24
  3. Réponses: 0
    Dernier message: 09/11/2010, 09h56
  4. fichier texte et Liste Chainée
    Par alexglvr dans le forum Débuter
    Réponses: 20
    Dernier message: 05/11/2008, 11h34
  5. Problème listes chaînées et fichier texte
    Par khayyam dans le forum Pascal
    Réponses: 2
    Dernier message: 24/01/2007, 20h11

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