Portál AbcLinuxu, 10. května 2025 02:37

Dotaz: Python a konverze raw řetězců ?

10.10.2005 12:11 Bartuc
Python a konverze raw řetězců ?
Přečteno: 128×
Odpovědět | Admin
Jak převést raw řetězec na "normální", aby se zase uplatňovaly escape sekvence ?
zpravicka = r"abc\ndef"
print zpravicka    # vypise abc\ndef
# jak zkonvertovat zpravicka, aby print vytisklo
# abc
# def
# , tj. uplatnil se znak nového řádku \n ?

Python asi někde používá nějaký vnitřní příznak, podle kterýho určí zda je řetězec raw nebo normal. Pátral jsem v dokumentaci, ale kde nic tu nic :-(

Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

10.10.2005 12:18 unchallenger | skóre: 69 | blog: unchallenger
Rozbalit Rozbalit vše Re: Python a konverze raw řetězců ?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Ne. Rozdíl mezi raw a normálními řetězci je pouze syntaktický. Takže z \n v normálním se v řetězci objeví znak konce řádku, kdežto z \n raw se objeví v řetězci dva znaky \ a n.

K interpretaci těch escape sekvencí by šly zneužít některé knihovní funkce, i když nevím o žádné, která je k tomu přímo určena. Nedávno se tu totéž řešilo v C...
Jiří P. avatar 10.10.2005 14:51 Jiří P. | skóre: 24 | blog: programování
Rozbalit Rozbalit vše Re: Python a konverze raw řetězců ?
Odpovědět | | Sbalit | Link | Blokovat | Admin
zpravicka = r"abc\ndef"

je totez jako

zpravicka = "abc\\ndef".

Takze tvuj problem resi:

print zpravicka.decode("string_escape")

Python RULEZ!

In a world without fences and walls, who needs Gates and Windows?
10.10.2005 16:01 Bartuc
Rozbalit Rozbalit vše Re: Python a konverze raw řetězců ?
Tak teď už je to jasný. Asi jsem v Pythonu pořád ještě lamer ;-)

Dííky !

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.