Re: [python] Prekdovn textovch souboru z DOSu.

2014-03-04 Tema obsahu Petr Přikryl
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.

2014-03-04 Tema obsahu Jiří Nekolný
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 Tema obsahu Petr Viktorin
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