[python] Unicode - TypeError

^nu.friX nu.frix na email.cz
Středa Červenec 25 01:12:57 CEST 2007


Hujec všem,
dělám jeden program a v něm mám část, kdy potřebuju provést zápis do
.txt souboru, ale tak, aby se četl jen při otevření přes program a 
ne normálně (pomocí pickle). Jelikož potřebuju zachovat diakritiku, 
používám kodování Unicode. Ale když jsem se snažil provéct 
následující operaci, program skončil (kod zkrácen jen na to 
nejnutnější):
# -*- coding: cp1250 -*-
promenna=u"p\u0159edm\u011bt"
pole=[]
print type(promenna)
print u"předmět: %s" % (promenna)
pole.append(u"předmět: %s") % (promenna)

Po spuštění tohoto scriptu se mi vyvolá výjimka:

<type 'unicode'>
předmět: předmět
Traceback (most recent call last):
 File "C:\Python24\Lib\site-packages\pythonwin\pywin\framework\
scriptutils.py", line 310, in RunScript
   exec codeObject in __main__.__dict__
 File "C:\Documents and Settings\nu.frix\Plocha\^nu.friX\unicode_
error.py", line 6, in ?
   pole.append(u"předmět: %s") % (promenna)
TypeError: unsupported operand type(s) for %: 'NoneType' and 
'unicode'

Jak vidíte tak type je opravdu unicode a pokud je chci pouze 
vytisknout, tak problém není, ale pokud chci vytvořit řetězec a ten 
následně přidat do pole, program končí. Absolutně nevím co s tím, 
asi je to dotaz lamy, ale prosil bych o radu.


Dan Pressl 
... aka ^nu.friX 
R34l17y 1s us3l3ss & F4Q DMNC!!!
------------- další část ---------------
HTML příloha byla odstraněna...
URL: http://www.py.cz/pipermail/python/attachments/20070725/d7f28c17/attachment.htm 


Další informace o konferenci Python