[python] Prekdovn textovch souboru z DOSu.

Petr Viktorin encukou na gmail.com
Úterý Březen 4 13:09:05 CET 2014


2014-03-04 9:02 GMT+01:00 Petr Přikryl <prikryl na atlas.cz>:
> Varianta by mohla být:
>  - otevřít výstupní soubor v binárním režimu
>  - načtený vstup explicitně překódovat s některým nedefault argumentnem "errors"
>
>      obsah.encode(encoding="cp1250", errors="backslashreplace")

Případně soubor přímo otevřít s příslušným kódováním, a pak zapisovat unicode :)
open('/tmp/xyz', 'w', encoding='cp1250', errors='backslashreplace')

>
>    a zapsat výsledek.
>
>
> Pak budou ty nepřeložitelné znaky snadno dohledatelné jako escape sekvence
> a můžeš je nahradit třeba ručně (v editoru, pokud je to jednorázová věc).

Problém s tímhle řešením je že se ztrácí informace, pokud původní text
už obsahuje escape sekvence.

>>> obsah='\u2591\\u2591'
>>> obsah
'░\\u2591'
>>> obsah.encode(encoding="cp1250", errors="backslashreplace")
b'\\u2591\\u2591'


> Taky by šlo před převodem z Unicode do výstupního souboru použít .replace()
> pro známé (nepřevoditelné) znaky a teprve potom zapisovat do výstupního souboru
>
>
> Petr
>
> ______________________________________________________________
>> Od: Jaroslav Lukesh <lukesh na seznam.cz>
>> Komu: Konference PyCZ <python na py.cz>
>> Datum: 03.03.2014 19:54
>> Předmět: Re: [python]Prekdovn textovch souboru z DOSu.
>>
>>Az tak prosté to není, predpokládá to mít osetrené vsechny paznaky, to uz
>>rovnou muzu definovat celé translate, ideální by byla volba
>>ignore-all-others a mít moznost definovat univerzální nahrazující znak - ne
>>vzdy se hodí otazník.
>>
>>----- Puvodní zpráva -----
>>Od: Ondrej Beranek
>>
>>prosté. dík.
>>
>>2014-03-03 17:44 GMT+01:00 Hynek Fabian <hynek.fabian na firma.seznam.cz>:
>>
>>S.translate(table [,deletechars]) -> string
>>
>>Return a copy of the string S, where all characters occurring
>>in the optional argument deletechars are removed, and the
>>remaining characters have been mapped through the given
>>translation table, which must be a string of length 256 or None.
>>If the table argument is None, no translation is applied and
>>the operation simply removes the characters in deletechars.
>>
>>
>>On 03/03/14 17:45, Ondrej Beranek wrote:
>>> dovolim si do toho vstoupit,
>>> kdybych takovou konverzi stejne chtel provest, s tim ze si sam reknu na co
>>> to prevest je mozne nejak konverzni tabulku dodefinovat ?
>>
>>_______________________________________________
>>Python mailing list
>>python na py.cz
>>http://www.py.cz/mailman/listinfo/python
>>
>>Visit: http://www.py.cz
>>
> _______________________________________________
> Python mailing list
> python na py.cz
> http://www.py.cz/mailman/listinfo/python
>
> Visit: http://www.py.cz


Další informace o konferenci Python