2016-05-04 37 views
15

Sono nuovo nella programmazione Python e sono un po 'confuso. Cerco di ottenere il byte da una stringa di hash e cifrare, ma ho ottenutoRimuovi il carattere 'b' di fronte a una stringa letterale in Python 3

b'...' 

b carattere di fronte a stringa, proprio come nell'esempio qui sotto. È un modo per evitarlo? Qualcuno può dare una soluzione? Ci scusiamo per questo stupido domanda

import hashlib 

text = "my secret data" 
pw_bytes = text.encode('utf-8') 
print('print',pw_bytes) 
m = hashlib.md5() 
m.update(pw_bytes) 

USCITA:

print b'my secret data' 
+0

http://stackoverflow.com/a/43680634/1236128 –

risposta

5

si ottiene il b perché hai codificato per utf-8 ed è un oggetto di byte. Quindi, è possibile stampare solo la stringa per prima, o ridondarla un po 'dopo la codifica, se non si desidera vedere il b denotarlo come questo. Dal momento che è necessario codificare prima dell'aggiornamento, suppongo che si possa codificare prima di questo

Inoltre, la conversione in uno str prima è ridondante. È già una stringa.

+0

perché è questo la risposta accettata? È quello sotto che è. Questo è troppo parlare ... La risposta di seguito di krock è la risposta. E a proposito, str (x) non rimuove la b – ifelsemonkey

+0

Le prime risposte senza spiegazione o come si dice "parlare" sono inutili. Le uniche risposte al codice sono disapprovate qui. Secondo, non ho detto str (x) rimosso b. – Pythonista

27

Questo dovrebbe fare il trucco:

pw_bytes.decode("utf-8") 
+0

grazie, agente. – ifelsemonkey

6

Qui u Tornare

f = open('test.txt','rb+') 
ch=f.read(1) 
ch=str(ch,'utf-8') 
print(ch) 
Problemi correlati