[Python] ValueError: embedded null byte
Alessandro Dentella
sandro a e-den.it
Mer 4 Apr 2018 08:56:19 CEST
> quando però vado a fare le seguenti istruzioni, per verificare se
> esiste la directory, prima di crearla, quando incontra un particolare
> file, mi crasha, con il seguente errore:
>
> Traceback (most recent call last):
> File "./RinominaFoto.py", line 80, in <module>
> scan_dir(args)
> File "./RinominaFoto.py", line 67, in scan_dir
> if not os.path.exists(os.path.join(args['destdir'], camera)):
> File "/usr/lib/python3.6/genericpath.py", line 19, in exists
> os.stat(path)
> ValueError: embedded null byte
>
> la riga incriminata è ovviamente:
>
> if not os.path.exists(os.path.join(args['destdir'], camera)):
>
> e presumo che l'errore stia nella varibile camera.
>
> in questo particolare file il valore, subito prima di crashare è il seguente:
>
> 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()
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? Prova con repr(camera)
L'istruzione va in eccezione anche nel debugger?
> except OSError:
> import ipdb; ipdb.set_trace()
> continue
sandro
*:-)
Maggiori informazioni sulla lista
Python