-
Path: news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!new
s.nask.pl!news.nask.org.pl!goblin1!goblin.stu.neva.ru!postnews.google.com!l31g2
000yqb.googlegroups.com!not-for-mail
From: Zbigniew Zagórski <z...@g...com>
Newsgroups: pl.comp.programming
Subject: Re: Python: pliki tekstowe - różne kodowanie
Date: Fri, 3 Jul 2009 00:30:54 -0700 (PDT)
Organization: http://groups.google.com
Lines: 103
Message-ID: <b...@l...googlegroups.com>
References: <h2hvke$456$1@news.wp.pl> <h2i7i3$8t4$1@news.wp.pl>
<0...@h...googlegroups.com>
<8...@s...pl>
NNTP-Posting-Host: 194.197.79.18
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-2
Content-Transfer-Encoding: quoted-printable
X-Trace: posting.google.com 1246606254 17123 127.0.0.1 (3 Jul 2009 07:30:54 GMT)
X-Complaints-To: g...@g...com
NNTP-Posting-Date: Fri, 3 Jul 2009 07:30:54 +0000 (UTC)
Complaints-To: g...@g...com
Injection-Info: l31g2000yqb.googlegroups.com; posting-host=194.197.79.18;
posting-account=pAMjAgoAAAB7BdHqfnhHGttUpTZHcafi
User-Agent: G2/1.0
X-HTTP-UserAgent: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.0.11)
Gecko/2009060215 Firefox/3.0.11 GTB5 (.NET CLR
3.5.30729),gzip(gfe),gzip(gfe)
Xref: news-archive.icm.edu.pl pl.comp.programming:182500
[ ukryj nagłówki ]On 2 Lip, 22:40, Rob Wolfe <r...@s...pl> wrote:
> Zbigniew Zagórski <z...@g...com> writes:
> > On 2 Lip, 14:01, "didi" <d...@d...com> wrote:
> >> Użytkownik "didi" <d...@d...com> napisał w
wiadomościnews:h2hvke$456$1@news.wp.pl...
>
> >> > outfile=open("name.txt",'w')
> >> > for file in filenames:
> >> > text=open(file)
> >> > lines=text.readlines()
> >> > outfile.writelines(lines[3:]) #zapisz wszystkie linie począwszy od
> >> > 3-ciej
> >> > text.close
> >> > outfile.close
>
> >> > I problem jaki napotkałem to UnicodeDecodeError: 'charmap' codec can't
> >> > decode byte ... in position ...:character mapt to <undifined>
>
> >> Zamiast Pythona 3xx użyłem wersję 2xx, które z defaultu nie konwertuje do
> >> postaci Unicode.
>
> > Oj wygląda na to, że Python zmierza w złym kierunku ... Szkoda.
>
> Taki wielgachny wnioch na podstawie tak drobnego nieporozumienia? ;)
No może trochę za wielgachny... Ale i tak trochę mi śmierdzi ... o tym
niżej
>
> > Przeczytałem twój post jakiś czas temu i zastanawiałem się jak to
> > możliwe...
> > 100 razy pisałem coś podobnego i działało.
>
> > A tu okazuje się, że dla Pythona NG wszystko to tekst. Brawo... No i
> > brawo
>
> No chyba po to wymyślono dwa tryby otwarcia pliku:
> (...)
> Masz na myśli stabilne API pomiędzy 2.x i 3.x?
> Cały sens powstania wersji 3.x sprowadza się do tego,
> aby nie być zmuszonym wstecznej kompatybilności z 2.x.
> Akurat w kwestii I/O i "bajty vs stringi vs unicode" w 3.x nastąpiły
> bardzo znaczące zmiany:http://docs.python.org/3.1/whatsnew/3.0.html#
text-vs-data-instead-of-...
Zgoda ...
> Aczkolwiek nie jakieś znowu rewolucyjne. Model bardzo zbliżony do java'owego.
> W tym konkretnym przypadku, który doprowadził Cię do tak drastycznych
> wniosków wystarczyło zamiast:
>
> open(file)
>
> napisać:
>
> open(file, errors='replace')
No sorka, to jest odczytywanie z translacją. Całkowicie odpada.
> co jest napisane wołami w dokumentacji.
> Java różni się tym, że przy błędnym kodowaniu nie rzuca wyjątku,
> lecz traktuje taką sytuację jako niezdefiniowaną.
> Python dodaje tu dodatkową możliwość kontroli i jeszcze zbiera
> za to cięgi. Echhh... ;)
Przeczytałem o tym wszystkim - po napisaniu postu - i ... oryginalny
poster pisał coś o tym, że próbował open(...,"rb"), i że też nie
działa.
Wygląda na to, że to on nie przeczytał dokumentacji - ani nie
pochwalił
się, że odpala to na py3k.
A wracając do cięgów. Nie siedzę ostatnio w Pythonie - jakoś mi się
z nim drogi rozeszły ale ... (nie czytałem żadnego flejma na ten temat
Py3k
więc opinia jest bardzo "IMHO") i tak uważam, że włożenie Unicode do
"normalnych" plików - i to domyślnie - jest nie na miejscu. Kodowanie
I/O
jest rzeczą wysoce zależną od aplikacji i powinno być używane w sposób
świadomy a nie gdzieś pod spodem korzystając z aktualnego locale.
To nie jest sprawa języka tylko projektu biblioteki. Mogli zostawić
jak było (czyli domyślnie "bytes") bez szkody dla innowacyjności Py3k
jako całości.
Z drugiej, strony podział na "text" i "bytes" (czy jak to tam
było) jest świetnym posunięciem.
BR,
ZZ
Najnowsze wątki z tej grupy
- Linuks od wer. 6.15 przestanie wspierać procesory 486 i będzie wymagać min. Pentium
- ,,Polski przemysł jest w stanie agonalnym" - podkreślił dobitnie, wskazując na brak zamówień.
- Rewolucja w debugowaniu!!! SI analizuje zrzuty pamięci systemu M$ Windows!!!
- Brednie w wiki - hasło Dehomag
- Perfidne ataki krakerów z KRLD na skrypciarzy JS i Pajton
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- U nas propagują modę na SI, a w Chinach naukowcy SI po kolei umierają w wieku 40-50lat
- C++. Podróż Po Języku - komentarz
- "Wuj dobra rada" z KDAB rozważa: Choosing the Right Programming Language for Your Embedded Linux Device
- Nowa ustawa o ochronie praw autorskich - opis problemu i szkic ustawy
- Alg. kompresji LZW
- Popr. 14. Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- Arch. Prog. Nieuprzywilejowanych w pełnej wer. na nowej s. WWW energokod.pl
Najnowsze wątki
- 2025-05-11 Linuks od wer. 6.15 przestanie wspierać procesory 486 i będzie wymagać min. Pentium
- 2025-05-11 Linuks od wer. 6.15 przestanie wspierać procesory 486 i będzie wymagać min. Pentium
- 2025-05-11 obca rejestracja budzi agresję
- 2025-05-11 Po nie udanej próbie egzekucji: Nigeryjczyk, który chciał zabić Polaka, nie odpowie za atak
- 2025-05-10 Szczecin => Key Account Manager IT <=
- 2025-05-10 Rudno => Administrator sieci IT <=
- 2025-05-10 Wrocław => Controlling systems Consultant <=
- 2025-05-10 Rudno => IT network administrator <=
- 2025-05-10 Warszawa => Customer Service with Spanish + translation <=
- 2025-05-10 Warszawa => Senior Account Manager <=
- 2025-05-10 Trójmiasto => Head of Social Media <=
- 2025-05-10 Warszawa => C Programmer <=
- 2025-05-10 Warszawa => Java Developer <=
- 2025-05-10 powąchaj instrybutor
- 2025-05-10 Prawomocny wyrok. Rowerzysta nie ma pierwszeństwa, dojeżdżając do przejazdu