在python中创建一个包含\ x的字符串

use*_*367 1 python string special-characters

我想创建一个包含"\ x"的字符串,但我得到了

invalid \x escape
Run Code Online (Sandbox Code Playgroud)

错误.

a = '\x'+''.join(lstDES[100][:2])+'\x'+''.join(lstDES[100][2:])
Run Code Online (Sandbox Code Playgroud)

我该如何纠正?

Mar*_*ers 6

加倍反斜杠以阻止Python将其解释为特殊字符:

'\\x'
Run Code Online (Sandbox Code Playgroud)

或使用原始字符串文字:

r'\x'
Run Code Online (Sandbox Code Playgroud)

在常规Python字符串文字中,反斜杠表示转义序列的开始,并且\x是一个按十六进制字节值定义字符的序列.

你可以使用字符串格式而不是所有的连接:

r'\x{0[0]}{0[1]}\x{0[2]}{0[3]}'.format(lstDES[100])
Run Code Online (Sandbox Code Playgroud)

如果您尝试根据十六进制值定义两个字节,lstDES[100]那么您将不得不使用不同的方法; 生成一个带有字符的字符串\,x两个十六进制数字不会神奇地调用Python用于字符串文字的相同解释.

您可以使用该binascii.unhexlify()功能:

import binascii

a = binascii.unhexlify(''.join(lstDES[100][:4]))
Run Code Online (Sandbox Code Playgroud)