due righe di python

Ciao a tutti, ho un problema che non riesco a comprendere

Contesto: sto lavorando sotto linux con udisks tramite dbus, voglio determinare il mount point di ciascun file system e controllare se questo mount point è root ('/')
Udisks mi torna una lista di mount point, ciascuno sotto forma di byte array (per chi mastica dbus, la signature è aay).
Ciclo sulla lista, trasformo ciascun byte array in stringa, e lo testo per vedere se è uguale a '/'

Problema: so che il mount point è '/' (sono andato a pescarmi il file system apposta, e se lo stampo (vedi sotto) è effettivamente '/'), ma (mount point == '/') mi torna falso come se le due stringhe fossero diverse.


Il mio codice (era diverso perchè sono partito spavaldo, ma ho abbassato la cresta e mi sono ridotto a questo accrocchio visto che non m'aspettavo che due stringhe uguali risultassero diverse ):

for mp in fs.MountPoints:
print(mp)
print(bytes(mp))
print(bytes(mp).decode('utf-8'))

# primo test
a = bytes(mp).decode('utf-8')
b = '/'
print('a == b ? %s' % ('yes' if a == b else 'no'))

# secondo test
b = b'/'.decode('utf-8')
print('a == b ? %s' % ('yes' if a == b else 'no'))

# terzo test
a = '%s' % (bytes(mp).decode('utf-8'))
b = '%s' % (b'/'.decode('utf-8'))
print('a == b ? %s' % ('yes' if a == b else 'no'))


Questo l'output (commentato da me in grassetto, come vedete dal terzo commento la stringa che mi torna udisks è effettivamente uguale a '/'):


root@debian:~# ./udisk.py
[47, 0] # print(mp)
b'/\x00' # print(bytes(mp))
/ # print(bytes(mp).decode('utf-8'))
a == b ? no
a == b ? no
a == b ? no


In pratica se stampo le due stringhe a e b risultano uguali, ma a == b mi dice che sono diverse.
Ovviamente sbaglio qualcosa ma cosa?
Minchia, ho capito
quel [47, 0] che stampa facendo print(mp) è una stringa C dove 0 è il null finale
Mavaffanculovà credevo me lo togliesse da solo, sono nabbo
A volte solo a spiegare il problema a qualcuno si trova la soluzione
Che poi bastava usare len(), ma è il venerdì di una settimana impegnativa