>Není další chyba v tom, že při čtení v textovém režimu >dostávám na konci řádku '\r\n'? (... pod Windows, neprovádí >se unifikace konců řádků.) Neviem jak je to s unifikaciou koncov riadkov vo Windowse asi je tam ako pozostatok z DOSu '\r\n'. Aby som nemusel riesit ci je na konci riadku '\r\n' alebo '\r' , robim vzdy chomp (t.j. line = line.rstrip() ) co v tom skripte samozrejme robis aj ty.
"Petr Prikryl" <[EMAIL PROTECTED]> Sent by: [EMAIL PROTECTED] 15.03.2007 11:10 Please respond to Konference PyCZ <[email protected]> To "Konference PyCZ" <[email protected]> cc Subject Re: [python] Q: Cteni unicode retezcu ze souboru UTF-8 s BOM? Díky. Tušil jsem nějakou zradu. Nakonec jsem to principiálně napsal takto. =================================================== import codecs bom = unicode(codecs.BOM_UTF8, 'utf8') f = codecs.open('soubor.txt', 'r', 'utf-8') for line in f: line = line.rstrip() + u'\n' if line.startswith(bom): line = line.lstrip(bom) print line, f.close() =================================================== To znamená, že z trojbajtové sekvence codecs.BOM_UTF8, která má hodnotu '\xef\xbb\xbf' vyrobím neexistující unicode znak u'\ufeff', který zahazuju, protože neexistuje :-) Není další chyba v tom, že při čtení v textovém režimu dostávám na konci řádku '\r\n'? (... pod Windows, neprovádí se unifikace konců řádků.) RMiklos [EMAIL PROTECTED] > Je to zjavne bug - tu sa o tom docitas: http://evanjones.ca/python-utf8.html > > Takze BOM treba odrezat rucne: > -------------------------------------------------- > # -*- coding: cp1250 -*- > import codecs > bom = unicode( codecs.BOM_UTF8, "utf8" ) > print "BOM = %s" % repr(bom) > f = codecs.open('soubor.txt', 'r', 'utf-8') > for line in f: > #print "line[0]= %s" % repr(line[0]) > if line[0] == unicode( codecs.BOM_UTF8, "utf8" ): > l=line.lstrip(unicode( codecs.BOM_UTF8, "utf8" )) > else: > l = line > print repr(l) > print l[1:] > f.close() > -------------------------------------------------- _______________________________________________ Python mailing list [email protected] http://www.py.cz/mailman/listinfo/python Mgr. Ing. Roman MIKLÓŠ Prvá stavebná sporiteľňa a.s. Bajkalská 30, P. O. Box 48 829 48 Bratislava 25 Tel.: +421/ 2 / 582 31 174 Fax: +421/ 2 / 582 31 109
_______________________________________________ Python mailing list [email protected] http://www.py.cz/mailman/listinfo/python
