[Python] ValueError: embedded null byte

Gollum1 gollum1.smeagol1 a gmail.com
Sab 7 Apr 2018 11:43:11 CEST


Il 7 aprile 2018 11:18, Andrea D'Amore <and.damore a gmail.com> ha scritto:
> 2018-04-07 8:51 GMT+02:00 Gollum1 <gollum1.smeagol1 a gmail.com>:
>> Non hai letto bene tutta la mail o il thread.
>
> Ho letto entrambi ma ho interpretato il messaggio in maniera diversa
> da quella che intendevi.

succede... :D

>> Il problema l'ho affrontato e risolto (grazie ai suggerimenti in lista) con l'uso di una regex, che copia in una nuova stringa (nel mio caso, in realtà è sempre la stessa) tutti i caratteri che matchano con i caratteri stampabili,
>
> Se intendi che  stai usando
>
>     camera = re.sub(…, camera)
>
> allora giusto per precisione la stringa è nuova, solo l'identificatore
> (cioè il nome) rimane lo stesso.

Sì... sì... questo l'ho imparato, diciamo che la mia è una
imprecisione dialettica (giusto farla notare, anche per chi legge in
futuro il thread), l'oggetto "stringa" in memoria è diverso, rimane
solo lo stesso il nome che uso come riferimento (e da quello che ho
capito, il vecchio dato, visto che ora non è più referenziato,
dovrebbe essere cancellato dal garbage collector, quindi il vantaggio
è di liberare un pizzico di memoria, certo, banale in questo
contesto).

>> La tua proposta di usare l'hash del valore della camera, non è male, potrebbe essere che in una prossime release la applichi... Per ora voglio identificare le varie camere e modelli che hanno scattato le fotografie.
>
> Dipende se hai interesse a conservare o meno la stringa originale del metadato.

in questa prima fase di sviluppo, preferisco vedere con che camera è
stata generata la fotografia, è anche più facile poi individuare il
contesto in cui è stata scattata, perché è presumibile che tutte le
fotografie scattate in una particolare situazione facciano parte di
una ristretta cerchia di camere, quelle presenti all'evento.

> Potrebbe essere che un produttore vi codifichi qualcosa in binario che
> cambia da modello a modello e avresti una collisione per due macchine
> con lo stesso produttore.
> È chiaramente un caso strano, ma non avrei comunque pensato che un
> metadato avesse tutti quei NUL dentro.

Fino ad ora pare che sia solo una camera che presenta tutti quei NUL,
una vecchia camera digitale trovata nel dixan ( :D ) oltretutto di
scarsissima qualità.

ho già implementato l'uso dell'hash(), che poi ho pure convertito in
esadecimale per avere delle directory che non fossero solo numeriche.
quello che mi ha sorpreso è vedere degli hash negativi, avevo capito
che l'hash dovesse essere sempre un numero positivo, invece a quanto
pare così non è, ma non metto l'abs() prima di convertirlo in
esadecimale, perché potrebbe collidere con un eventuale hash uguale,
ma positivo... per ora se ne stanno con il loro bel segno meno in
testa... :D

> Andrea

Byez
-- 
Gollum1 - http://www.gollumone.it
Tesssssoro, dov'é il mio tessssoro...


Maggiori informazioni sulla lista Python