Bonjour,
je suis novice en python,
je cherche une fonxtion qui est equivalente a (PHP)Code:str_replace("","","")
Connaitriez-vous une fonction qui fait la meme chose en Python?
Mille merci
Version imprimable
Bonjour,
je suis novice en python,
je cherche une fonxtion qui est equivalente a (PHP)Code:str_replace("","","")
Connaitriez-vous une fonction qui fait la meme chose en Python?
Mille merci
je crois que c'est
Mais comment je peux l'include ou c'est rouge dans le code ci-dessous??Code:replace( old, new[, count])
Code:
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)
Attention, les séquences %s (ou %d, ...) servent au formatage de chaîne. Par exemple :
va donner "Bonjour toto"Code:print "Bonjour %s"%("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
Par contre je ne sais pas ce que ça peut donner au niveau de la sécurité.Code:out_tmpl.replace("[:CONTACT:]", "nom")
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:
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:])
Salut,
Est-ce que c'est ce que tu cherches à faire ?
Code:
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>""")
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
Ce qui va prendre tous les '@'de la chaîne out_tmpl pour les remplaces per des '(at)'Code:out_tmpl.replace("@","(at)")
MAIS il vaut mieux localiser ce remplacement au maximum et le faire uniquement sur les adresses mail :
Code:
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']))
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
Super juju0, c'est exactement ca, ca marche.
J'ai donc fait comme ceci
Mille mercisCode:
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']))