2016-05-04 12 views
15

に文字列リテラルの前に行うと、私は少し混乱しています。私は、ハッシュおよび暗号化するために、文字列からバイトを取得しようとするんだけど、下の例のような文字列の前で削除「B」の文字は、私はPythonプログラミングの新しい午前のPython 3

b'...' 

Bの文字を得ました。これを避ける方法はありますか?誰かが解決策を提示することはできますか?このばかげた質問

import hashlib 

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

OUTPUTのため申し訳ありません:あなたはutf-8にエンコードし、それはbytesオブジェクトだから

print b'my secret data' 
+0

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

答えて

5

あなたはbを取得します。あなたはbはこのようにそれを表す見たいと思っていなかったのであれば、あなたは、単に最初の文字列、または符号化後のビット冗長デコード、それを印刷することができます。あなたが更新する前にエンコードする必要がありますので、私はstr事前に変換し、あなただけのもこの

前にエンコードすることができ、冗長されているとします。それはすでに文字列です。ここで

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

なぜこれが受け入れ答えです: – ifelsemonkey

+0

まず答えを削除していないか、あなたがそれを置くよう「話」役に立ちません。コードのみの回答はここでは眉をひそめます。次に、str(x)がbを削除したとは言わなかった。 – Pythonista

27

この

は、トリックを行う必要がありますか?それは以下のものです。これはあまりにも多くの話です...下の答えがkrockです。ところで、STR(x)は説明なしでBに
+0

は、行為者をありがとうございました。 – ifelsemonkey

6

uが行く

f = open('test.txt','rb+') 
ch=f.read(1) 
ch=str(ch,'utf-8') 
print(ch) 
関連する問題