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 :

Decoupage chaine de caracteres


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de olivier1969
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Novembre 2013
    Messages
    153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2013
    Messages : 153
    Par défaut Decoupage chaine de caracteres
    Bonjour à tous ;

    Je reprend du code Perl vers Python et je bute sur un bout de code qui me permet de 'découper' un chaîne de plusieurs dizaines de milliers de caractères en morceau de 160 caractères :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
            ### Decoupage du fichier en chaines de 160 caractères
            @t1 = $texte =~ m/(.{160})/g ;
    Je désirerai ne pas utiliser de boucle pour arriver à ce résultat (ça je sais faire).

    Est il possible de faire l’équivalent en python ?

    Merci pour votre aide !!


    PS : Ce bout de code n’étant pas optimal car il perd la dernière séquence si elle fait moins de 160 caractères.

  2. #2
    Membre éclairé
    Homme Profil pro
    Data Lover
    Inscrit en
    Décembre 2014
    Messages
    96
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Data Lover
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2014
    Messages : 96
    Par défaut
    Bonjour,

    C'est possible de le faire avec la compréhension de listes mais toutefois, il y a un petit "for" dedans.

  3. #3
    Membre éprouvé Avatar de olivier1969
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Novembre 2013
    Messages
    153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2013
    Messages : 153
    Par défaut
    Oui ça m’intéresse alors , merci

  4. #4
    Membre éclairé
    Homme Profil pro
    Data Lover
    Inscrit en
    Décembre 2014
    Messages
    96
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Data Lover
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2014
    Messages : 96
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    chaine = "votre chaine de caractères"
    n = 160 # nombre de caractères à découper
    chaine_decoupee = [chaine[i:i+n] for i in range(0, len(chaine), n)]

  5. #5
    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,

    attention que la méthode par slicing ne produit pas tout à fait le même résultat

    par exemple si on considère la chaine ABCDEFGHIJKLMNOPQRSTUVWXYZ qu'on veut découper par blocs de 4 :

    avec Perl :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $ perl -e 'my $texte = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; my @t1 = $texte =~ m/(.{4})/g; print join(", ", @t1);'
    ABCD, EFGH, IJKL, MNOP, QRST, UVWX
    avec Python via slicing :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $ python -c 'texte = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; print ", ".join([texte[i:i+4] for i in range(0, len(texte), 4)])'
    ABCD, EFGH, IJKL, MNOP, QRST, UVWX, YZ
    avec Python via regexp (findall(r'.{160}', texte)):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    python -c "import re; texte = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'; print(', '.join(re.findall(r'.{4}', texte)))"
    ABCD, EFGH, IJKL, MNOP, QRST, UVWX

  6. #6
    Membre éprouvé Avatar de olivier1969
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Novembre 2013
    Messages
    153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2013
    Messages : 153
    Par défaut
    Merci à tous les deux ;

    La solution de master4 est celle que je vais conserver car justement je tiens à récupérer les caractères 'restants' ... Mais je dois tester sur un fichier de plusieurs dizaine de Mo voir le tps que ça met à être traité ( 17000 fichiers par jours de 30Mo en moyenne )

    Bufferbob , pourquoi n'ai je pas pensé au findall (bientôt les vacances)??? c'est ce qui ressemble le plus au code d'origine .

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

Discussions similaires

  1. [Débutant] decoupage d'une chaine de caracteres avec la commande strread
    Par jeune informatique dans le forum MATLAB
    Réponses: 4
    Dernier message: 11/05/2010, 13h49
  2. decoupage d'une chaine de caractere
    Par julinho99 dans le forum Débuter
    Réponses: 13
    Dernier message: 24/09/2008, 15h23
  3. Decoupage chaine de caracteres
    Par Katachana dans le forum Langage
    Réponses: 3
    Dernier message: 12/03/2008, 17h58
  4. decoupage chaine de caractere
    Par shams dans le forum SL & STL
    Réponses: 6
    Dernier message: 10/09/2007, 12h06
  5. [MySQL] probleme decoupage chaine de caractere
    Par mahfout_i dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 27/03/2006, 18h57

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