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)
我该如何纠正?
加倍反斜杠以阻止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)