拆下';b';Python3中字符串文本前面的字符do
我是python编程新手,有点困惑。我试图从字符串中获取字节以进行哈希和加密,但我得到了拆下';b';Python3中字符串文本前面的字符do,python,string,encryption,binary,Python,String,Encryption,Binary,我是python编程新手,有点困惑。我试图从字符串中获取字节以进行哈希和加密,但我得到了 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) 输出: prin
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)
输出:
print b'my secret data'
解码是冗余的 你只是在一开始就犯了这个“错误”,因为对正在发生的事情有误解 您得到了
b
,因为您编码为utf-8
,现在它是一个字节对象。
>> type("text".encode("utf-8"))
>> <class 'bytes'>
>键入(“文本”。编码(“utf-8”))
>>
修复:
这应该可以做到:
pw_bytes.decode("utf-8")
给你
f = open('test.txt','rb+')
ch=f.read(1)
ch=str(ch,'utf-8')
print(ch)
为什么这是公认的答案?就是下面的那个。这是一个太多的话…下面的答案由克罗克是答案。顺便说一句,str(x)不会在没有解释的情况下删除第一个答案,或者正如你所说的,“谈话”是无用的。这里不赞成只使用代码的答案。第二,我没有说str(x)删除了b。这没有回答问题。这不是答案@dsgdfg仅仅因为你不理解它并不意味着它不是一个答案。这只是意味着,您来到stackoverflow寻找复制粘贴代码,却不知道自己在做什么,也不试图理解自己编写的代码中的一点点内容。你想找一个50个字符的2点式项目来详细说明你是怎么搞砸的?你在混合中引入了一个文件系统对象?为什么?我没有得到它,请你详细说明一下。我在Python 3.7.3中使用了它来删除
b'
中包含子流程返回的值。检查\u output()
,它就工作了。在我的情况下,它不工作。我正在使用python3。谢谢,它与python3.7一起工作@BiratBose:我认为应该可以,你能提供代码和结果吗?@BiratBose,我使用的是python 3.7,解码对我来说很有效。适用于python 3.7.3。谢谢pw_字节=pw_字节。解码(“utf-8”)
应该可以工作