Re: [Python] Pickling in P3.

2017-06-12 Per discussione Gollum1
Il 12 giugno 2017 22:41:00 CEST, Strap Lab  ha scritto:
>Il 12/giu/2017 10:13 PM, "Gabriele Battaglia"  ha
>scritto:
>
>Sera.
>Io torno alle origini del topic.
>Chiedevo come mai non riesco ad usare il modulo pickling con Python 3,
>come
>faccio col 2.
>
>Parto dall’errore:
>
>Traceback (most recent call last):
>  File "collezioni.py", line 84, in 
>
>l=pickle.load(f)
>File
>"/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/codecs.py",
>line 321, in decode
>(result, consumed) = self._buffer_decode(data, self.errors, final)
>UnicodeDecodeError: 'utf-8' codec can't decode byte 0x80 in position 0:
>invalid start byte
>
>
>Il file che tento di aprire è un file di testo e f contiene
>semplicemente
>questo:
>
>try:
>f=open(clz+".gbd","U")
>print ("\n\n- Caricamento di "+clz+".gbd"+"  in corso...")
>l=pickle.load(f)
>f.close()
>
>
>A che cosa potrebbe essere dovuto quell’errore?
>
>
>Può essere dovuta a questo:
>https://stackoverflow.com/questions/28218466/unpickling-a-python-2-object-with-python-3
>
>Sani
>Strap

mi sono imbattuto bello stesso errore tempo fa, è dovuta all'interpretazione 
errata del codice 0x80, che in Unicode dovrebbe essere un carattere di 
controllo (se ricordo bene è il decimale 128)... però non mi ricordo come avevo 
risolto la cosa... su stackoverflow dovresti trovare delle info.
-- 
Gollum1
Teoro, dov'è il mio teoro...

Inviato dal mio dispositivo Android con K-9 Mail. Perdonate la brevità e gli 
errori (maledetto correttore ortografico).
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Pickling in P3.

2017-06-12 Per discussione Strap Lab
Il 12/giu/2017 10:13 PM, "Gabriele Battaglia"  ha scritto:

Sera.
Io torno alle origini del topic.
Chiedevo come mai non riesco ad usare il modulo pickling con Python 3, come
faccio col 2.

Parto dall’errore:

Traceback (most recent call last):
  File "collezioni.py", line 84, in 

l=pickle.load(f)
  File 
"/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/codecs.py",
line 321, in decode
(result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x80 in position 0:
invalid start byte


Il file che tento di aprire è un file di testo e f contiene semplicemente
questo:

try:
f=open(clz+".gbd","U")
print ("\n\n- Caricamento di "+clz+".gbd"+"  in corso...")
l=pickle.load(f)
f.close()


A che cosa potrebbe essere dovuto quell’errore?


Può essere dovuta a questo:
https://stackoverflow.com/questions/28218466/unpickling-a-python-2-object-with-python-3

Sani
Strap
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Pickling in P3.

2017-06-12 Per discussione Gabriele Battaglia
Sera.
Io torno alle origini del topic.
Chiedevo come mai non riesco ad usare il modulo pickling con Python 3, come 
faccio col 2.

Parto dall’errore:

Traceback (most recent call last):
  File "collezioni.py", line 84, in 

l=pickle.load(f)
  File 
"/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/codecs.py", 
line 321, in decode
(result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x80 in position 0: invalid 
start byte


Il file che tento di aprire è un file di testo e f contiene semplicemente 
questo:

try:
f=open(clz+".gbd","U")
print ("\n\n- Caricamento di "+clz+".gbd"+"  in corso...")
l=pickle.load(f)
f.close()


A che cosa potrebbe essere dovuto quell’errore?

Grazie.
Gabriele.
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Pickling in P3.

2017-06-12 Per discussione Daniele Zambelli
Il 12 giugno 2017 11:31, Raffaele Salmaso  ha scritto:
> Così ti rimane aperto il file inutilmente, col with invece lo chiudi appena
> hai finito di usarlo.

[...]

Grazie, molto interessante.

-- 

Daniele

www.fugamatematica.blogspot.com

giusto!
nel verso
forse è perché non guardiamo le cose
Quando non ci capiamo,
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Pickling in P3.

2017-06-12 Per discussione Paolo Di Ieso


Il 12/06/2017 11:35, Carlo Miron ha scritto:

2017-06-12 11:31 GMT+02:00 Raffaele Salmaso :

2017-06-12 11:21 GMT+02:00 Daniele Zambelli :

Il 9 giugno 2017 12:09, Davide Olianas  ha
scritto:

with open('pippo', 'rb') as f:
 oggetto = pickle.load(f)

Perché usare with e non semplicemente:
f = open('pippo', 'rb')
oggetto = pickle.load(f)
?

Così ti rimane aperto il file inutilmente, col with invece lo chiudi appena
hai finito di usarlo.
Per uno script usa e getta potrebbe non essere un problema, ma in generale
meglio liberare le risorse usate appena possibile.

Inoltre se non chiudi esplicitamente il file, Windows™ non lo scrive
su disco, abbiamo scoperto.


Aggiungo: e mentre "with" ti chiude automaticamente il file anche in 
caso di eccezione, nel caso di un'eccezione lanciata prima di arrivare a 
un ipotetico f.close() il file rimarrebbe comunque aperto. Puoi sempre 
utilizzare try/finally per chiudere il file qualunque cosa vada storto, 
ma with è lì che lo fa per te, perché non usarlo...


Paolo
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Pickling in P3.

2017-06-12 Per discussione Daniele Zambelli
Il 9 giugno 2017 12:09, Davide Olianas  ha scritto:
>
> with open('pippo', 'rb') as f:
> oggetto = pickle.load(f)

Scusate se allargo la discussione, ma forse la risposta è abbastanza
semplice e non occorre aprire un nuovo thread.

Perché usare with e non semplicemente:

f = open('pippo', 'rb')
oggetto = pickle.load(f)

oppure:

oggetto = pickle.load(open('pippo', 'rb'))

?

Grazie

-- 

Daniele

www.fugamatematica.blogspot.com

giusto!
nel verso
forse è perché non guardiamo le cose
Quando non ci capiamo,
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Pickling in P3.

2017-06-09 Per discussione Davide Olianas

Il 09/06/2017 11:54, Gabriele Battaglia ha scritto:

Ciao.
Una domanda da super principiante.
Come si usa la funzione di pickle in Python3?
A differenza del 2, mi pare voglia un oggetto Bytes invece che una 
stringa ma non ho capito bene la o le differenze.






Da una rapida occhiata alla documentazione, direi che ti conviene usare 
il metodo *load* anziché *loads* perché il primo vuole un "oggetto file"


with open('pippo', 'rb') as f:
oggetto = pickle.load(f)
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


[Python] Pickling in P3.

2017-06-09 Per discussione Gabriele Battaglia

Ciao.
Una domanda da super principiante.
Come si usa la funzione di pickle in Python3?
A differenza del 2, mi pare voglia un oggetto Bytes invece che una 
stringa ma non ho capito bene la o le differenze.

Gabry.
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python