Re: [python] Prekdovn textovch souboru z DOSu.
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) 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). 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 luk...@seznam.cz Komu: Konference PyCZ python@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.fab...@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@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz
Re: [python] Překódování textových souborů z DOSu.
Všem děkuji za účast. Hledal jsem chybu v programování a ono to tak jednoduše vlastně nejde z logiky věci. Jen jsem ještě přišel na další parametr encoding=cp1250, errors='ignore' místo strict =ignoruje chyby a lze využít i jiné například doplnění otazníku. Nicméně si budu muset udělat analýzu znaků a překódování provést podle svého. ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz
Re: [python] Prekdovn textovch souboru z DOSu.
2014-03-04 9:02 GMT+01:00 Petr Přikryl prik...@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 luk...@seznam.cz Komu: Konference PyCZ python@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.fab...@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@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz