TypeError nello script Conv_to_utf8

Forum dedicato ai gruppi di studio di debianizzati.org
Rispondi
Avatar utente
brunology
Full Member
Full Member
Messaggi: 173
Iscritto il: 28/10/2007, 12:20
Contatta:

TypeError nello script Conv_to_utf8

Messaggio da brunology »

Oggi ho provato a eseguire lo script Conv_to_utf8
su un file con codifica ISO-8859.

Ottengo questo errore:

Codice: Seleziona tutto

$ ./conv_to_utf8.py iso8859.txt 
Traceback (most recent call last):
  File "./conv_to_utf8.py", line 19, in <module>
    main()
  File "./conv_to_utf8.py", line 13, in main
    all_to_utf8('testo', 'latin_1')
  File "./conv_to_utf8.py", line 5, in all_to_utf8
    text = open(inputfile, 'r', inputenc)
TypeError: an integer is required
Ho questa versione: Python 3.1.3.
Qualcuno sa il perché dell'errore?
Stemby
wiki member
wiki member
Messaggi: 1433
Iscritto il: 11/04/2009, 15:47
Località: Missaglia (LC)

Re: TypeError nello script Conv_to_utf8

Messaggio da Stemby »

brunology ha scritto:

Codice: Seleziona tutto

$ ./conv_to_utf8.py iso8859.txt 
Da quel che vedo (ri)leggendo lo script, non è pensato per essere usato in questo modo.

Devi:
1) rinominare 'iso8859.txt' come 'testo', senza estensioni
2) lanciare lo script semplicemente con

Codice: Seleziona tutto

$ ./conv_to_utf8.py

Prova così.

Effettivamente è ampiamente migliorabile: la sintassi da te usata sarebbe ben più logica (bisognerebbe però aggiungere anche un ulteriore parametro per indicare la codifica dell'input).

Sentiti libero di fare tutte le modifiche che ritieni opportune :)

Ciao!
Avatar utente
brunology
Full Member
Full Member
Messaggi: 173
Iscritto il: 28/10/2007, 12:20
Contatta:

Re: TypeError nello script Conv_to_utf8

Messaggio da brunology »

ho fatto come dici, ma mi dà lo stesso errore

ora provo a migliorarlo
in realtà ho riguardato questo script proprio perché mi piacerebbe andare oltre open() o input(),
nel senso di poter eseguire uno script su più file

in conv_to_utf8 mi interessava capire questa riga:

Codice: Seleziona tutto

def all_to_utf8(inputfile, inputenc): 
cos'è inputfile? non mi è riuscito trovare niente a riguardo

ora mi sto leggendo questo capitolo:
http://docs.python.org/release/3.1.3/li ... lesys.html
Stemby
wiki member
wiki member
Messaggi: 1433
Iscritto il: 11/04/2009, 15:47
Località: Missaglia (LC)

Re: TypeError nello script Conv_to_utf8

Messaggio da Stemby »

brunology ha scritto: in conv_to_utf8 mi interessava capire questa riga:

Codice: Seleziona tutto

def all_to_utf8(inputfile, inputenc): 
Ti è chiara la sintassi di def? inputfile è solo un nome di fantasia assegnato al primo parametro della funzione. Python a quel punto crea una variabile con quel nome, che verrà poi usata 2 righe da open(). Il fatto che venga usata da open() e in che modo, ti dovrebbe far intuire anche di che tipo di oggetto si tratta: una stringa che rappresenta il percorso di un file.

Nello specifico, la funzione main() passerà alla funzione all_to_utf8() la stringa 'testo' come primo parametro. Quindi il tuo file, che devi chiamare 'testo', deve trovarsi nella stessa directory in cui lanci lo script.

Ciao!
Rispondi