[python] Tisk unicode řetězce a tisk seznamu unicode řetězců

Radek Kanovsky rk na dat.cz
Středa Červen 8 09:16:37 CEST 2011


On Tue, Jun 07, 2011 at 06:13:23PM +0200, David Rohleder wrote:

> Když už jsme u těch řetězců: jak se udělá raw unicode řetězec, tj.
> interpret neinterpretuje uvnitř? Generuju si latexový dokument a on se
> přirozeně vzteká na:
> 
> hlavicka = ur"""
> \documentclass[a4,landscape]{article}
> \usepackage{graphicx}
> \usepackage[czech]{babel}
> \usepackage[utf8]{inputenc}
> \begin{document}
> \thispagestyle{empty}
> 
> """
> 
> print hlavicka
> 
> SyntaxError: (unicode error) 'rawunicodeescape' codec can't decode bytes
> in position 39-40: truncated \uXXXX

Problém je, že i v raw řetězci má \u speciální význam. Slouží pro zadávání
unicode znaků hexadecimálně a "sepa" (následující za \u) není hexadecimální
číslo. http://docs.python.org/reference/lexical_analysis.html#literals

Možná by nebylo špatné na generování latex dokumentů použít nějaký
šablonovací nástroj. Taková Tempita http://pythonpaste.org/tempita/
je velmi jednoduchá. Používáme to například na generování emailů.
Dlouhé stringy v kódu nevypadají dobře a starší Vim občas rozhodí
při zvýrazňování syntaxe :-)

Radek Kaňovský
http://www.dat.cz/


Další informace o konferenci Python