如何在python中从字符串中提取字节数据?

2024-05-13 00:09:49 发布

您现在位置:Python中文网/ 问答频道 /正文

str1 = "b""T\xefD\xcdB\x95\x90v\x9f\x88^\xa3\x08\x00E\x00\x00|\xd7u@\x00.\x11\x80\xcf\x0e\xd7#\x07\xc0\xa8\x01\xa6\x1fu\xb2d\x00h}\x0e!1\x00`\x00\x00\x00\x00\x16So\xe7`\x00|\xd0j\xcc\xbc\xf5<j\x807\x98\xb1t\xddMMrH\xf1\xffy\xbd]\x88\xb1\x9f\xe04r\xaaD\xc8\xd5\x9cc\xe1\xc9'\x0e\x1dsY)4\xaeq\xf9\xe9\x8e\xc7c\xd9O\xa5I\x86\xd6p\xa5.a){\xbc\x16\xe4\xf9\x86\x15\x7f\xddw!\xa8U#I\xf5FV.\xe0k\xcf"""
b1 = b'T\xefD\xcdB\x95\x90v\x9f\x88^\xa3\x08\x00E\x00\x00|\xd7u@\x00.\x11\x80\xcf\x0e\xd7#\x07\xc0\xa8\x01\xa6\x1fu\xb2d\x00h}\x0e!1\x00`\x00\x00\x00\x00\x16So\xe7`\x00|\xd0j\xcc\xbc\xf5<j\x807\x98\xb1t\xddMMrH\xf1\xffy\xbd]\x88\xb1\x9f\xe04r\xaaD\xc8\xd5\x9cc\xe1\xc9'\x0e\x1dsY)4\xaeq\xf9\xe9\x8e\xc7c\xd9O\xa5I\x86\xd6p\xa5.a){\xbc\x16\xe4\xf9\x86\x15\x7f\xddw!\xa8U#I\xf5FV.\xe0k\xcf'

如何转移str1,即<;类别'str'>;至b1,即<;类“字节”>


Tags: x86x00xcfstr1xbcx0ex95x9f
2条回答

这里有一个简单的方法:

str1 = "b""T\xefD\xcdB\x95\x90v\x9f\x88^\xa3\x08\x00E\x00\x00|\xd7u@\x00.\x11\x80\xcf\x0e\xd7#\x07\xc0\xa8\x01\xa6\x1fu\xb2d\x00h}\x0e!1\x00`\x00\x00\x00\x00\x16So\xe7`\x00|\xd0j\xcc\xbc\xf5<j\x807\x98\xb1t\xddMMrH\xf1\xffy\xbd]\x88\xb1\x9f\xe04r\xaaD\xc8\xd5\x9cc\xe1\xc9'\x0e\x1dsY)4\xaeq\xf9\xe9\x8e\xc7c\xd9O\xa5I\x86\xd6p\xa5.a){\xbc\x16\xe4\xf9\x86\x15\x7f\xddw!\xa8U#I\xf5FV.\xe0k\xcf"""
    
b1 = bytes(str1.split("b")[1], 'raw_unicode_escape')

print (b1)

输出:

b"T\xefD\xcdB\x95\x90v\x9f\x88^\xa3\x08\x00E\x00\x00|\xd7u@\x00.\x11\x80\xcf\x0e\xd7#\x07\xc0\xa8\x01\xa6\x1fu\xb2d\x00h}\x0e!1\x00\x00\x00\x00\x00\x16So\xe7\x00|\xd0j\xcc\xbc\xf5<j\x807\x98\xb1t\xddMMrH\xf1\xffy\xbd]\x88\xb1\x9f\xe04r\xaaD\xc8\xd5\x9cc\xe1\xc9'\x0e\x1dsY)4\xaeq\xf9\xe9\x8e\xc7c\xd9O\xa5I\x86\xd6p\xa5.a){\xbc\x16\xe4\xf9\x86\x15\x7f\xddw!\xa8U#I\xf5FV.\xe0k\xcf"

如果有正确的格式str1,可以尝试使用eval

代码:

str1 = r'b"T\xefD\xcdB\x95\x90v\x9f\x88^\xa3\x08\x00E\x00\x00|\xd7u@\x00.\x11\x80\xcf\x0e\xd7#\x07\xc0\xa8\x01\xa6\x1fu\xb2d\x00h}\x0e!1\x00`\x00\x00\x00\x00\x16So\xe7`\x00|\xd0j\xcc\xbc\xf5<j\x807\x98\xb1t\xddMMrH\xf1\xffy\xbd]\x88\xb1\x9f\xe04r\xaaD\xc8\xd5\x9cc\xe1\xc9\'\x0e\x1dsY)4\xaeq\xf9\xe9\x8e\xc7c\xd9O\xa5I\x86\xd6p\xa5.a){\xbc\x16\xe4\xf9\x86\x15\x7f\xddw!\xa8U#I\xf5FV.\xe0k\xcf"'
x = eval(str1)
print(x)
print(type(x))

结果:

b"T\xefD\xcdB\x95\x90v\x9f\x88^\xa3\x08\x00E\x00\x00|\xd7u@\x00.\x11\x80\xcf\x0e\xd7#\x07\xc0\xa8\x01\xa6\x1fu\xb2d\x00h}\x0e!1\x00`\x00\x00\x00\x00\x16So\xe7`\x00|\xd0j\xcc\xbc\xf5<j\x807\x98\xb1t\xddMMrH\xf1\xffy\xbd]\x88\xb1\x9f\xe04r\xaaD\xc8\xd5\x9cc\xe1\xc9'\x0e\x1dsY)4\xaeq\xf9\xe9\x8e\xc7c\xd9O\xa5I\x86\xd6p\xa5.a){\xbc\x16\xe4\xf9\x86\x15\x7f\xddw!\xa8U#I\xf5FV.\xe0k\xcf" 
<class 'bytes'>

相关问题 更多 >