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 :

Besoin d'explications sur .translate() [Python 3.X]


Sujet :

Python

  1. #1
    Candidat au Club
    Homme Profil pro
    Coordinateur
    Inscrit en
    Octobre 2018
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Coordinateur
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2018
    Messages : 2
    Points : 3
    Points
    3
    Par défaut Besoin d'explications sur .translate()
    Bonjour à tous,

    J'apprends le langage Python et je rencontre un problème avec la méthode de class str .translate().
    Je relis la doc sans cesse mais je ne comprend pas.

    Je voudrais supprimer les caractères comme .,!? etc... dans un texte avec cette méthode mais cela me renvoi une erreur car il ne faut qu'un seul argument.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    #!/usr/bin/python3.7 
    # -*-coding:utf-8 -*
     
    book=open("alice.txt", "r")    # ouverture de 'alice.txt' en mode 'read'
    for line in book:
    	line=line.strip()
    	line=line.translate(None,'.,*!')
    	print(line)
    Si une âme charitable pouvait m'expliquer mon erreur
    D'avance merci !

  2. #2
    Membre confirmé
    Homme Profil pro
    Développeur banc de test
    Inscrit en
    Mai 2014
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur banc de test
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mai 2014
    Messages : 199
    Points : 482
    Points
    482
    Par défaut
    Bonjour,

    pour utiliser translate il faut passer str.maketrans pour définir une table de traduction.

    Voici un exemple complet sur le sujet : https://www.developpez.net/forums/d1...e/#post8560538

  3. #3
    Candidat au Club
    Homme Profil pro
    Coordinateur
    Inscrit en
    Octobre 2018
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Coordinateur
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2018
    Messages : 2
    Points : 3
    Points
    3
    Par défaut
    Effectivement, cela fonctionne bien.
    Je ne vois encore pas comment fonctionne l'argument deletechars mais bon...

    Merci beaucoup !

  4. #4
    Membre confirmé
    Homme Profil pro
    Développeur banc de test
    Inscrit en
    Mai 2014
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur banc de test
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mai 2014
    Messages : 199
    Points : 482
    Points
    482
    Par défaut
    L'argument deletechars existait sous Python 2 : https://docs.python.org/2/library/st...ring.translate

    string.translate(s, table[, deletechars])
    Delete all characters from s that are in deletechars (if present)
    If table is None, then only the character deletion step is performed.


    mais je viens de voir que ça existe encore avec bytes.translate(table, delete=b'') :

    https://docs.python.org/3/library/st...ytes.translate
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Set the table argument to None for translations that only delete characters:
    >>>
     
    >>> b'read this short text'.translate(None, b'aeiou')
    b'rd ths shrt txt'

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

Discussions similaires

  1. Besoin d'explications sur les charset
    Par EGPMS dans le forum SQL Procédural
    Réponses: 7
    Dernier message: 03/02/2006, 15h38
  2. [xml] Xpath besoin d'explication sur preceding-sibling::
    Par ekmule dans le forum XSL/XSLT/XPATH
    Réponses: 7
    Dernier message: 10/01/2006, 09h32
  3. besoin d'explication sur le c++
    Par poporiding dans le forum MFC
    Réponses: 13
    Dernier message: 17/12/2005, 18h01
  4. Besoin d'explications sur un bout de code
    Par zizitop dans le forum C
    Réponses: 7
    Dernier message: 26/04/2005, 14h51
  5. Besoin d'explications sur float et l'élasticité !
    Par KneXtasY dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 14/01/2005, 15h15

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