Problema funzione "open()" -

S
Shad87 (740 points)
5 9 11
asked Oct 22, 2019 in Programmare in Python by Shad87 (740 points)
edited Oct 22, 2019 by andrea.sterbini

Sto provando a fare l'esercizio 1 della lezione 9.

Il problema è che non riesco ad aprire il file di testo creato appositamente.

Sono nella giusta directory, il file è rinominato correttamente, ma mi da questo errore


<_io.TextIOWrapper name='testo.txt' mode='r' encoding='cp1252'>

Credo di aver capito che è un problema di encoding, ma non ne sono affatto sicuro. Ho anche provato a scrivere il file di testo dentro python, con la codifica UTF-8, e a salvare in .txt, ma niente...

Help!

315 views

3 Answers

Best answer
andrea.sterbini (172780 points)
514 935 1789
answered Oct 22, 2019 by andrea.sterbini (172,780 points)
selected Oct 22, 2019 by Shad87
Quello non mi sembra un errore, è l'oggetto file che hai creato con la funzione open.

Se lo metti in una variabile puoi leggerne il contenuto col metodo read.
S
Shad87 (740 points)
5 9 11
commented Oct 22, 2019 by Shad87 (740 points)
Grazie Prof., era proprio questo l'errore. Cercavo di farmi restituire il contenuto della variabile che conteneva il testo, senza usare read().
Approfondirò i due metodi :) !
E
Edward (25950 points)
2 4 172
answered Oct 22, 2019 by Edward (25,950 points)
Credo sia un problema legato ad un esercizio delle lezioni della teledidattica, quindi sarebbe più corretto scrivere nel forum della teledidattica.

Comunque quello non è un errore, è semplicemente la rappresentazione di un oggetto di classe _io.TextIOWrapper
Tu probabilmente hai fatto una cosa del genere

with open(filename) as f:
    print(f)

e siccome non hai specificato l'encoding, python cerca di aprirlo con l'encoding cp1252.
Comunque quello non è un errore (in termini di esecuzione), è un errore però nel tuo codice. Non so cosa vuoi fare esattamente, ma devi modificarlo, ad esempio con il metodo read.
S
Shad87 (740 points)
5 9 11
commented Oct 22, 2019 by Shad87 (740 points)
Ho fatto solo quello che i prof ci hanno consigliato, ma grazie per la precisazione :) !

Ho provato a fare come hai detto tu, e il codice non andava ugualmente. Utilizzando f.read() come diceva il prof, invece ha funzionato.

Il codice giusto, o almeno quello che per me ha funzionato è questo:

with open(filename) as f:
    print(f.read())

Cercherò di approfondire open e read, per evitare errori futuri.

Grazie.
andrea.sterbini (172780 points)
514 935 1789
commented Oct 22, 2019 by andrea.sterbini (172,780 points)
Non dovreste postare codice ...
E
Edward (25950 points)
2 4 172
commented Oct 22, 2019 by Edward (25,950 points)
Mi scuso Prof, era per fare un esempio di quando appare "l'errore" che riceveva. Credevo la limitazione fosse per codice relativo agli homework
plm (18850 points)
7 15 118
answered Oct 22, 2019 by plm (18,850 points)
Hai provato a vedere nelle impostazioni? Sembra banale ma magari qualcosa è variato nelle impostazioni, per il resto, personalmente, non saprei aiutarti :(