[Python-de] Maskierung von %

Christopher Arndt chris.arndt at web.de
Fr Feb 2 14:52:15 CET 2007


Volker Helm schrieb:
> Gerade das wollte ich vermeiden, lese nämlich einen kompletten SQL ein und wollte diesen mit nur einer/mehreren Zeilen erweitern.

Was heißt erweitern? Anhängen oder irgendwo zwischen drin einfügen?

Wenn ersteres:

x = 15.23
s = sqlstring + "prozentuale Spanne %.2f %%" % x

Wenn letzteres, dann musst du es ja wohl entweder manuell machen, oder du hast
dafür auch einen Algorithmus (z.B. regular expressions), dann machst du die
string substitution halt bevor du die Zeilen einfügst:

import re
sqlstring = u"Irgendein Text der Prozentzeichen (%) enthält.  ${PLATZHALTER}.
Noch mehr Text"
sqlstring = re.sub(r'\$\{PLATZHALTER\}', "prozentuale Spanne %.2f %%" % x,
sqlstring)


> Da im Text häufiger ein "wert like '%suchbegriff%'" steht, müsste ich immer dieses Sonderzeichen eintragen, das ist mühsam und unleserlich :(

Da kann dir Python helfen:

s = s.replace('%', '%%')

natürlich, bevor du Platzhalter wie %s usw. einfügst.

Chris