[python] Ja prekodovat retezec.

geon geon na post.cz
Úterý Červenec 19 18:58:27 CEST 2005


David Michal napsal(a):

>Zdravim,
>prosim napada vas nekoho kod ktery by mi z tohoto vstupu:
>u'Příliš' , vstup bude soubor v iso-8859-2
>udelal vystup do jineho souboru s timto obsahem:
>u'P\u0159\xedli\u0161'
>
>  
>
místo raw_unicode_escape můžete použít i jiné, viz: # 
http://docs.python.org/lib/standard-encodings.html (třebas jsem zkoušel 
unicode_escape)

Všechny 3 ukázky jsou víceméně rovnocené. První 2 ukázky jsou na námět 
JF a 3 ukázka je na námět JP. Druhá je snad nejtransparentnější. Snad je 
to ono ;-)

vstup = file("vstup.txt", "r")
vystup = file("vystup.txt", "w")

for radek in vstup:
  radek = radek.decode('iso-8859-2').encode('raw_unicode_escape')
  print radek,
  vystup.write(radek)

vstup.close()
vystup.close()

# ---------------------------------------------


import codecs

vstup = codecs.open("vstup.txt", "r", "iso-8859-2")
vystup = codecs.open("vystup.txt","w","raw_unicode_escape")

for radek in vstup:
  print radek,
  vystup.write(radek)

vstup.close()
vystup.close()

# ---------------------------------------------

vstup = file("vstup.txt", "r")
vystup = file("vystup.txt", "w")

for radek in vstup:
  radek = radek.decode('iso-8859-2')
  print radek,
  vystup.write(repr(radek))
  vystup.write('\n')

vstup.close()
vystup.close()



-- 
geon
Vyjímka je pravidlo. Rekurzivní.




Další informace o konferenci Python