Wpis z mikrobloga

Może ktoś pomoże...
Program pisany przeze mnie w pythonie wywala sie, gdy w zasysanej linijce (linechache.getline) pojawiaja sie polskie znaki (ą, ę, ć). Teoretycznie zmienilem kodowanie pliku z danymi do utf 8, ale nie ma zmian (jak zastapie ww znaki bezogonkowcami, to dziala). Mam gdzies w programie deklarowac jakie jest kodowanie pliku (bo kodowanie uzywane w programie to wiem, ze deklaruje sie na początku)? I tak, niespecjalnie umiem w programowanie :P
#programowanie #python
  • 23
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@gofr: wolałbym nie robic tej czynnosci z kilkudziesiecioma tys linii :P
Twoj sposob bez linecache dziala wysmienicie, wiec chyba tego uzyje (i sie poucze) :) Jak rozumiem na koncu powinienem zrobic cos na kształt io.close() ?
  • Odpowiedz
@thomeq: mówiłeś, że dotyczy to tylko jedej linii. W takim razie fakt, to nienajlepszy pomysł. Nie mniej, możesz sobie to zautomatyzować.

Wygląda na to, że do rozwiązania Twojego problemu lepszy jest linecache więc... może poczytaj jeszcze i poszukaj przyczyny błędu. Może:

The tokenize.open() function is used to open files. This function uses tokenize.detect_encoding() to get the encoding of the file; in the absence of an encoding token, the file encoding defaults to
  • Odpowiedz