il file non viene aperto

AndreaTasselli (5100 points)
3 6 11
asked Nov 25, 2021 in HW6 by AndreaTasselli (5,100 points)

Ho appena iniziato a scrivere il codice del HW6 ma quando provo ad aprire il file e leggere le righe mi da questo errore.


  File "/Users/Andrea/opt/anaconda3/lib/python3.8/codecs.py", line 322, in decode
    (result, consumed) = self._buffer_decode(data, self.errors, final)

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc3 in position 27: invalid continuation byte

331 views

4 Answers

Best answer
M
Mordekai (650 points)
0 0 2
answered Nov 25, 2021 by Mordekai (650 points)
selected Nov 25, 2021 by AndreaTasselli
Da anche a me lo stesso errore, anche se l'unica istruzione è print('ok').

È un problema solo del file in italiano, conviene operare su quello in inglese che non presenta l'errore.
.
.Alex. (890 points)
0 0 8
answered Nov 25, 2021 by .Alex. (890 points)

Controlla se hai selezionato il file con estensione .txt e non quello con stesso nome, ma estensione .png.
Può essere questo un caso in cui avviene l'UnicodeDecodeError.

AndreaTasselli (5100 points)
3 6 11
commented Nov 25, 2021 by AndreaTasselli (5,100 points)
Ho selezionato tutti i file in input giusti ma la situazione non cambia
.
.Alex. (890 points)
0 0 8
commented Nov 25, 2021 by .Alex. (890 points)

Prova a dare un'occhiata al modulo chardet:

https://pypi.org/project/chardet/

Se il problema è nella codifica di qualche carattere, in questo modo dovrebbe essere evidenziato il giusto encoding da scegliere.

Wahya (7760 points)
1 2 15
answered Nov 25, 2021 by Wahya (7,760 points)

E' un errore dell'encoding in utf-8, a quanto pare non riesce a riconoscere quel determinato byte.

Ho trovato questo su stackoverflow :

"If this error arises when manipulating a file that was just opened, check to see if you opened it in 'rb' mode."

Leggi questo, magari può esserti utile --> https://stackoverflow.com/questions/5552555/unicodedecodeerror-invalid-continuation-byte

AndreaTasselli (5100 points)
3 6 11
commented Nov 25, 2021 by AndreaTasselli (5,100 points)
provato anche con "rb" mode e latin ma niente
andrea.sterbini (172780 points)
513 935 1789
answered Nov 25, 2021 by andrea.sterbini (172,780 points)
Quale file?       .
p
paper (660 points)
3 6 7
commented Nov 25, 2021 by paper (660 points)
Anche io ho lo stesso problema e me lo fa con tutti i file .txt nella cartella matrices. Però se scrivo direttamente tutto il codice per leggere il file nella console, me lo legge senza problemi. (Sono su Mac OS, non so se potrebbe influire)
AndreaTasselli (5100 points)
3 6 11
commented Nov 25, 2021 by AndreaTasselli (5,100 points)
ho preso come esempio example.txt
andrea.sterbini (172780 points)
513 935 1789
commented Nov 25, 2021 by andrea.sterbini (172,780 points)
Se apro il file 'matrices/example.txt' con mode='r' e encoding='utf8' lo leggo completamente senza alcun errore
Tu come fai?

Sei in windows? stai usando l'encoding utf8?
AndreaTasselli (5100 points)
3 6 11
commented Nov 25, 2021 by AndreaTasselli (5,100 points)
Sono su Mac-OS, comunque ho risolto usando il file program01 inglese invece di quello italiano
andrea.sterbini (172780 points)
513 935 1789
commented Nov 25, 2021 by andrea.sterbini (172,780 points)
Ho veramente delle grosse difficoltà a capire come mai il file in italiano e quello in inglese fanno cose diverse.

Soprattutto quando uno usa utf8 come encoding nella open('file.txt', encoding='utf8') e tenuto conto ch entrambi all'inizio dichiarano di usare encoding utf-8

Mi manderesti per email il codice che ti da problemi? Grazie
andrea.sterbini (172780 points)
513 935 1789
commented Nov 26, 2021 by andrea.sterbini (172,780 points)
edited Nov 26, 2021 by andrea.sterbini

Si è finalmente capito che il problema NON è nei file dei rettangoli ma nel file program01.ita.py che ha un carattere strambo nella descrizione.

Avete provato ad aggiungere in testa la riga

# -*- coding: utf-8 -*-