On Wed, Apr 04, 2018 at 12:05:44PM +0200, Gollum1 wrote:
> Il 4 aprile 2018 08:56, Alessandro Dentella <san...@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)

In [5]: len(c2)
Out[5]: 17

In [6]: c2
Out[6]: 'DigitalDigital HH'

In [7]: len(camera)
Out[7]: 32



*:-)
_______________________________________________
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python

Rispondere a