[Python] ValueError: embedded null byte

Gollum1 gollum1.smeagol1 a gmail.com
Mer 4 Apr 2018 13:23:06 CEST


Il 4 aprile 2018 13:15, Gollum1 <gollum1.smeagol1 a gmail.com> ha scritto:
> Il 4 aprile 2018 12:38, Alessandro Dentella <sandro a e-den.it> ha scritto:
>> On Wed, Apr 04, 2018 at 12:05:44PM +0200, Gollum1 wrote:
>>> Il 4 aprile 2018 08:56, Alessandro Dentella <sandro a e-den.it> ha scritto:
>>>
>>> >> camera = "DigitalDigital HH"
>>> >
>>> > Se fosse veramente quello il valore della variabile 'camera' non ci
>>> > sarebbero problemi:
>>> >
>>> >    $ ipython3
>>> >
>>> >    In [1]: import os
>>> >
>>> >    In [2]: camera = "DigitalDigital HH"
>>> >
>>> >    In [3]: os.path.exists(os.path.join('/tmp', camera))
>>> >    Out[3]: False
>>> >
>>> > Per prima cosa aggiungerei nel try/except:
>>> >
>>> >    import ipdb; ipdb.set_trace()
>>>
>>> questo non mi funziona, non ho il modulo installato evidentemente,
>>> provvederò quanto prima.
>>
>> vitale per un debug efficace:
>>
>>    pip install ipdb
>>
>>
>>> > così sperimenti direttamente e ti fai un'idea chiara.
>>> > len(camera) ti restituisce 17 o la variabile ha qualche carattere non
>>> > rappresentato magari nella tua codifica?
>>>
>>> bella lì... mi len mi dice che è lungo 32 caratteri... :O
>>>
>>> > Prova con repr(camera)
>>>
>>> (32) - DigitalDigital HH
>>> 'Digital\x00\x00Digital \x00H\x00\x00\x00\x01\x00\x00\x00H\x00\x00\x00\x01\x00'
>>>
>>> eccolo lì... e spiegato anche il motivo per cui anche facendo uno
>>> split sullo spazio, in realtà non risolvevo il problema, non è
>>> visibile, ma rompe...
>>>
>>> esiste un qualche comando che mi permetta di "sanare" una stringa così
>>> fatta? un camera.encode(utf8) potrebbe essere la soluzione?
>>
>> In [2]: import re
>>
>> In [3]: camera = 'Digital\x00\x00Digital \x00H\x00\x00\x00\x01\x00\x00\x00H\x00\x00\x00\x01\x00'
>>
>> In [4]: c2 = re.sub('[^a-zA-Z0-9_ ]', '', camera)

ho interpretato al contrario, non avevo visto "^" quindi tutto ciò che
non è lettera maiscola, minuscola o numero, viene sostituito con un
nulla (non Null).

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


Maggiori informazioni sulla lista Python