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 :

Cherche un fonction qui remplace un caractere


Sujet :

Python

  1. #1
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 167
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 167
    Par défaut Cherche un fonction qui remplace un caractere
    Bonjour,
    je suis novice en python,
    je cherche une fonxtion qui est equivalente a (PHP)
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    str_replace("","","")

    Connaitriez-vous une fonction qui fait la meme chose en Python?

    Mille merci

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 167
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 167
    Par défaut
    je crois que c'est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    replace( old, new[, count])
    Mais comment je peux l'include ou c'est rouge dans le code ci-dessous??
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    sql = context.select_research
    result = sql(research_statut=int(active))
    
    out_tmpl = """
    <tr class="row1">
    	<td class="col1">
    
    		<table class="tb_research_int">
    			<tr><td colspan="2" class="title">%s <!--titre--></td></tr>
    			<tr><td colspan="2" class="text">%s.... <!--texte short--> [ <a href="/research/resarch-detail?id=%s">detail</a> ]</td></tr>
    			
    			<tr><td class="left">Research team :</td><td>%s <!--[Team]--></td></tr>
    			<tr><td class="left">Contact :</td><td><a href="mailto:%s">%s</a> <!--[contact]--></td></tr>
    			<tr><td class="left">Funding :</td><td>%s <!--[funding]--></td></tr>
    			<tr><td class="left">Students :</td><td>%s <!--[Team]--></td></tr>
    		</table>
    	</td>
    	<td class="col2"><img src="/img/research/%s.jpg" alt="Research" /> <!--image--></td>
    </tr>
    
    """
    
    dicts = result.dictionaries()
    
    if not len(dicts):
      return "Topics : No entries found in the DB"
    
    out = []
    for item in result.dictionaries():
      out.append(out_tmpl %(item['title'], item['text_short'], item['id'], item['team'], item['fd_contact'], item['fd_contact'], item['funded'], item['students'], item['img']))
    
    return """<table class="tb_research" cellpadding="0" cellspacing="0">%s</table>""" %"\n".join(out)

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 13
    Par défaut
    Attention, les séquences %s (ou %d, ...) servent au formatage de chaîne. Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print "Bonjour %s"%("toto")
    va donner "Bonjour toto"

    S'il y a plusieurs %s, tu dois tous leur donner un substituant (sous peine d'avoir une erreur)

    Pour le remplacement, tu peux effectivement utiliser la méthode replace qui va remplace la séquence fournie (argument 1) par une autre (argument 2) et tu peux éventuellement préciser le nombre de remplacements (argument 3).
    Pour ton cas, tu peux utiliser une balise dans le texte (comme [:CONTACT:] par exemple).
    Tu aura donc quelque chose comme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    out_tmpl.replace("[:CONTACT:]", "nom")
    Par contre je ne sais pas ce que ça peut donner au niveau de la sécurité.

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 167
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 167
    Par défaut
    Salut merci pour ta reponse, mais j'ai du mal a voir comment je peux implémenter ceic?

    En fait je devrait mettre [:contact:] à la place du %s qui se trouve en rouge (au niveau du commentaire <!--contact -->

    et ensuite comme ceci:
    Code PYTHON : 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
    17
    18
    19
    out_tmpl = """
    <tr class="row1">
            <td class="col1">
     
                    <table class="tb_research_int">
                            <tr><td colspan="2" class="title">%s <!--titre--></td></tr>
                            <tr><td colspan="2" class="text">%s.... <!--texte short--> [ <a href="/research/resarch-detail?id=%s">detail</a> ]</td></tr>
                            
                            <tr><td class="left">Research team :</td><td>%s <!--[Team]--></td></tr>
                            <tr><td class="left">Contact :</td><td><a href="mailto:%s">[:contact:]</a> <!--[contact]--></td></tr>
                            <tr><td class="left">Funding :</td><td>%s <!--[funding]--></td></tr>
                            <tr><td class="left">Students :</td><td>%s <!--[Team]--></td></tr>
                    </table>
            </td>
            <td class="col2"><img src="/img/research/%s.jpg" alt="Research" /> <!--image--></td>
    </tr>
     
    """
    out_tmpl.replace("@","(at)",[:contact:])

  5. #5
    Membre chevronné
    Inscrit en
    Janvier 2007
    Messages
    329
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 329
    Par défaut
    Salut,

    Est-ce que c'est ce que tu cherches à faire ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    out_tmpl = out_tmpl.replace("""<tr><td class="left">Contact :</td><td><a href="mailto:%s">%s</a>""","""<tr><td class="left">Contact :</td><td><a href="mailto:%s">[:contact:]</a>""")

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 13
    Par défaut
    Je pense qu'on s'est mal compris !
    Oublie mon histoire de [:contact:], je n'avais pas compris ce que tu voulais faire.

    Si tu veux enlever les caractères '@', fais simplement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    out_tmpl.replace("@","(at)")
    Ce qui va prendre tous les '@'de la chaîne out_tmpl pour les remplaces per des '(at)'

    MAIS il vaut mieux localiser ce remplacement au maximum et le faire uniquement sur les adresses mail :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    for item in result.dictionaries():
      out.append(out_tmpl %(item['title'], item['text_short'], item['id'], item['team'], item['fd_contact'], item['fd_contact'].replace("@","(at)"), item['funded'], item['students'], item['img']))

  7. #7
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 167
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 167
    Par défaut
    Oui excusez moi pour n'avoir pas été claire.
    J'ai dans une base des email adresse et j'aimerai que l'adresse apparaisse avec un (at) au lieu du @.

    Merci pour vos reponse , je vais les étudier

  8. #8
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 167
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 167
    Par défaut
    Super juju0, c'est exactement ca, ca marche.
    J'ai donc fait comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    for item in result.dictionaries():
      out.append(out_tmpl %(item['title'], item['text_short'], item['id'], item['team'], item['fd_contact'], item['fd_contact'].replace("@","(at)"), item['funded'], item['students'], item['img']))
    Mille mercis

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

Discussions similaires

  1. [XL-2007] Cherche une fonction qui convertit directement une date
    Par BARMAKI dans le forum Excel
    Réponses: 7
    Dernier message: 08/04/2013, 13h19
  2. [Turbo Pascal] Fonction qui remplace les caractères entrés par des étoiles (*)
    Par Dr.Mimo dans le forum Contribuez
    Réponses: 0
    Dernier message: 30/03/2012, 21h51
  3. la fonction qui remplace NVL dans SQL SERVER
    Par bestdali dans le forum Outils
    Réponses: 3
    Dernier message: 20/05/2011, 07h18
  4. Fonction qui remplace des caractères spéciaux
    Par ViRouF dans le forum SQL Procédural
    Réponses: 6
    Dernier message: 07/08/2006, 10h24
  5. cherche une fonction qui permet de faire une recherche
    Par vbcasimir dans le forum Langage
    Réponses: 7
    Dernier message: 01/09/2005, 17h24

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