[python] Překódování textových souborů z DOSu.

Petr Viktorin encukou na gmail.com
Pondělí Březen 3 15:08:06 CET 2014


Souboru f1 už nastavuješ kódování, takže do něj můžeš psát přímo
řetězce, bez encode():
f1.write(obsah)

Případně pokud chceš do souboru zapisovat bajty (ne Unicode řetězce),
otevři ho pro binární zápis:
f1=open(soubor1, 'wb')
f1.write(obsah.encode("cp1250"))

2014-03-03 14:53 GMT+01:00 Jiří Nekolný <jnekolny na centrum.cz>:
> Potřeboval bych archivní soubory z DOSu převést do kódování ve Win případně i v Linuxu (ISO8859), se kterým koketuji.
>
> V Pythonu 3 jsem vytvořil prográmek
>
> 1. soubor = 'c:/apy/zn852.txt'
> 2. soubor1 ='c:/apy/zn1252.txt'
> 3. f= open(soubor, 'r',encoding="cp852")
> 4. obsah= f.read()
> 5. print(obsah)
> 6. f1=open(soubor1, 'w',encoding="cp1250")
> 7. f1.write(obsah.encode("cp1250"))
> 8. f1.close()
>
> Až do ř. 7 proběhne vše dobře, ale soubor se mi v požadovaném kódování nedaří uložit. Dva dni googlím a pořád nevidím, kde je chyba?
> Předpokládám, že proměnná obsah ve v unicode utf-8. A nebo ne?
>
> Tréninkový soubor zn852.txt jsou vygenerované znaky char(I), pro I=0 to 255
> v latin2 (cp852).
>
> Děkuji.
> _______________________________________________
> Python mailing list
> python na py.cz
> http://www.py.cz/mailman/listinfo/python
>
> Visit: http://www.py.cz


Další informace o konferenci Python