>>> x = "\x55\x89\xe5\xb9\x00\x00\x00\x00\xb8\xc0\xa0\x04\x08\x31\xdb\x31\xd2\x8a\x1c\x08\x01\xda\x41\x83\xf9\x72\x75\xf5\x81\xfa\x71\x71\x00\x00\x74\x22\xb8\x04\x00\x00\x00\xbb\x01\x00\x00\x00\xb9\x7a\xa0\x04\x08\xba\x0a\x00\x00\x00\xcd\x80\xb8\x01\x00\x00\x00\xbb\x00\x00\x00\x00\xcd\x80\xb8\x04\x00\x00\x00\xbb\x01\x00\x00\x00\xb9\x70\xa0\x04\x08\xba\x09\x00\x00\x00\xcd\x80\xb8\x01\x00\x00\x00\xbb\x00\x00\x00\x00\xcd\x80\x5d\xc3"
>>> x
'U\x89\xe5\xb9\x00\x00\x00\x00\xb8\xc0\xa0\x04\x081\xdb1\xd2\x8a\x1c\x08\x01\xdaA\x83\xf9ru\xf5\x81\xfaqq\x00\x00t"\xb8\x04\x00\x00\x00\xbb\x01\x00\x00\x00\xb9z\xa0\x04\x08\xba\n\x00\x00\x00\xcd\x80\xb8\x01\x00\x00\x00\xbb\x00\x00\x00\x00\xcd\x80\xb8\x04\x00\x00\x00\xbb\x01\x00\x00\x00\xb9p\xa0\x04\x08\xba\t\x00\x00\x00\xcd\x80\xb8\x01\x00\x00\x00\xbb\x00\x00\x00\x00\xcd\x80]\xc3'
有没有什么方法可以让解释器打印出x,就像我输入的那样?即它应该以{{1}}开头,而不是\x55
。
答案 0 :(得分:3)
是的,在引号前添加r
:
x = r"\x55\x89\xe5\xb9\x00\x00\x00\x00\xb8\xc0\xa0\x04\x08\x31\xdb\x31\xd2\x8a\x1c\x08\x01\xda\x41\x83\xf9\x72\x75\xf5\x81\xfa\x71\x71\x00\x00\x74\x22\xb8\x04\x00\x00\x00\xbb\x01\x00\x00\x00\xb9\x7a\xa0\x04\x08\xba\x0a\x00\x00\x00\xcd\x80\xb8\x01\x00\x00\x00\xbb\x00\x00\x00\x00\xcd\x80\xb8\x04\x00\x00\x00\xbb\x01\x00\x00\x00\xb9\x70\xa0\x04\x08\xba\x09\x00\x00\x00\xcd\x80\xb8\x01\x00\x00\x00\xbb\x00\x00\x00\x00\xcd\x80\x5d\xc3"
print x
<强>输出强>
\x55\x89\xe5\xb9\x00\x00\x00\x00\xb8\xc0\xa0\x04\x08\x31\xdb\x31\xd2\x8a\x1c\x08\x01\xda\x41\x83\xf9\x72\x75\xf5\x81\xfa\x71\x71\x00\x00\x74\x22\xb8\x04\x00\x00\x00\xbb\x01\x00\x00\x00\xb9\x7a\xa0\x04\x08\xba\x0a\x00\x00\x00\xcd\x80\xb8\x01\x00\x00\x00\xbb\x00\x00\x00\x00\xcd\x80\xb8\x04\x00\x00\x00\xbb\x01\x00\x00\x00\xb9\x70\xa0\x04\x08\xba\x09\x00\x00\x00\xcd\x80\xb8\x01\x00\x00\x00\xbb\x00\x00\x00\x00\xcd\x80\x5d\xc3
答案 1 :(得分:1)
要使用原始值x
准确获得所需内容,请编写显示功能:
>>> x = "\x55\x89\xe5\xb9\x00\x00\x00\x00\xb8\xc0\xa0\x04\x08\x31\xdb\x31\xd2\x8a\x1c\x08\x01\xda\x41\x83\xf9\x72\x75\xf5\x81\xfa\x71\x71\x00\x00\x74\x22\xb8\x04\x00\x00\x00\xbb\x01\x00\x00\x00\xb9\x7a\xa0\x04\x08\xba\x0a\x00\x00\x00\xcd\x80\xb8\x01\x00\x00\x00\xbb\x00\x00\x00\x00\xcd\x80\xb8\x04\x00\x00\x00\xbb\x01\x00\x00\x00\xb9\x70\xa0\x04\x08\xba\x09\x00\x00\x00\xcd\x80\xb8\x01\x00\x00\x00\xbb\x00\x00\x00\x00\xcd\x80\x5d\xc3"
>>> x
'U\x89\xe5\xb9\x00\x00\x00\x00\xb8\xc0\xa0\x04\x081\xdb1\xd2\x8a\x1c\x08\x01\xdaA\x83\xf9ru\xf5\x81\xfaqq\x00\x00t"\xb8\x04\x00\x00\x00\xbb\x01\x00\x00\x00\xb9z\xa0\x04\x08\xba\n\x00\x00\x00\xcd\x80\xb8\x01\x00\x00\x00\xbb\x00\x00\x00\x00\xcd\x80\xb8\x04\x00\x00\x00\xbb\x01\x00\x00\x00\xb9p\xa0\x04\x08\xba\t\x00\x00\x00\xcd\x80\xb8\x01\x00\x00\x00\xbb\x00\x00\x00\x00\xcd\x80]\xc3'
>>> def display(x):
... return "'\\x"+'\\x'.join(format(ord(n),'02x') for n in x)+"'"
...
>>> print display(x)
'\x55\x89\xe5\xb9\x00\x00\x00\x00\xb8\xc0\xa0\x04\x08\x31\xdb\x31\xd2\x8a\x1c\x08\x01\xda\x41\x83\xf9\x72\x75\xf5\x81\xfa\x71\x71\x00\x00\x74\x22\xb8\x04\x00\x00\x00\xbb\x01\x00\x00\x00\xb9\x7a\xa0\x04\x08\xba\x0a\x00\x00\x00\xcd\x80\xb8\x01\x00\x00\x00\xbb\x00\x00\x00\x00\xcd\x80\xb8\x04\x00\x00\x00\xbb\x01\x00\x00\x00\xb9\x70\xa0\x04\x08\xba\x09\x00\x00\x00\xcd\x80\xb8\x01\x00\x00\x00\xbb\x00\x00\x00\x00\xcd\x80\x5d\xc3'
如果您只想要一个十六进制转储,这里是一个标准库函数,格式略有不同:
>>> import binascii
>>> binascii.hexlify(x)
'5589e5b900000000b8c0a0040831db31d28a1c0801da4183f97275f581fa717100007422b804000000bb01000000b97aa00408ba0a000000cd80b801000000bb00000000cd80b804000000bb01000000b970a00408ba09000000cd80b801000000bb00000000cd805dc3'