Please ignore secret bonuses. Secret tests do NOT award bonus. Max hw grade is 30+2 bonus efficiency

Do you need help?

Problema funzione "open()" -

S
Shad87 (740 points)
6 9 11
in Programmare in Python by (740 points)
edited by

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!

492 views
closed

3 Answers

Best answer
andrea.sterbini (207920 points)
750 1267 2373
by (208k points)
selected by
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)
6 9 11
by (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)
3 4 172
by (26.0k 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)
6 9 11
by (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 (207920 points)
750 1267 2373
by (208k points)
Non dovreste postare codice ...
E
Edward (25950 points)
3 4 172
by (26.0k 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)
13 15 118
by (18.9k points)
Hai provato a vedere nelle impostazioni? Sembra banale ma magari qualcosa è variato nelle impostazioni, per il resto, personalmente, non saprei aiutarti :(