gpt4 book ai didi

python - bytes() 和 b'' 之间的区别

转载 作者:行者123 更新时间:2023-12-04 23:12:00 25 4
gpt4 key购买 nike

我有以下 str :"\xd0\xa0\xd0\xb0\xd1\x81\xd1\x88\xd0\xb8\xd1\x84\xd1\x80\xd0\xbe\xd0\xb2\xd0\xba\xd0\xb0_RootKit.com_63k.txt"
这来自文件名:Расшифровка_RootKit.com_63k.txt
我的问题是无法逆转第一个 str到第二个。我尝试了一些东西,使用 en/decode() , bytes()等,但我没有管理。

我注意到的一件事是 b'' 和 bytes() 有不同的输出:

path = "\xd0\xa0\xd0\xb0\xd1\x81\xd1\x88\xd0\xb8\xd1\x84\xd1\x80\xd0\xbe\xd0\xb2\xd0\xba\xd0\xb0_RootKit.com_63k.txt"
bpath = bytes(path, "UTF-8")
print(bpath.decode("UTF-8"))
print(b"\xd0\xa0\xd0\xb0\xd1\x81\xd1\x88\xd0\xb8\xd1\x84\xd1\x80\xd0\xbe\xd0\xb2\xd0\xba\xd0\xb0_RootKit.com_63k.txt".decode('utf8'))

结果:
РаÑÑиÑ
Ñовка_RootKit.com_63k.txt
Расшифровка_RootKit.com_63k.txt

所以我想知道 b'' 和有什么区别和 bytes() ;也许它会帮助我解决我的问题!

最佳答案

b''是一个前缀,它会导致以下字符串被解释为 bytes - 类型的对象。 bytes函数接受一个字符串并返回一个 bytes目的。

print(b"\xd0\xa0\xd0\xb0\xd1\x81\xd1\x88\xd0\xb8\xd1\x84\xd1\x80\xd0\xbe\xd0\xb2\xd0\xba\xd0\xb0_RootKit.com_63k.txt".decode

这是有效的,因为您正在解码一个字节对象。
path = "\xd0\xa0\xd0\xb0\xd1\x81\xd1\x88\xd0\xb8\xd1\x84\xd1\x80\xd0\xbe\xd0\xb2\xd0\xba\xd0\xb0_RootKit.com_63k.txt"
bpath = bytes(path, "UTF-8")
print(bpath.decode("UTF-8"))

这不符合预期,因为您正在治疗 path作为字符串,然后将其转换为字节对象,然后尝试解码输出的内容。

关于python - bytes() 和 b'' 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57785207/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com