使包括蟒蛇
问题描述:
\ X字符串我想作一个字符串,其中包括“\ X”,但我得到使包括蟒蛇
invalid \x escape
错误。
a = '\x'+''.join(lstDES[100][:2])+'\x'+''.join(lstDES[100][2:])
我该如何纠正它?
答
双反斜线从将其解释为特殊字符停止的Python:
'\\x'
或使用原始字符串字面量:
r'\x'
在常规的Python字符串文字,反斜杠信号的开始一个转义序列,而\x
是一个通过十六进制字节值定义字符的序列。
你可以使用字符串格式化而不是所有的串联这里:
r'\x{0[0]}{0[1]}\x{0[2]}{0[3]}'.format(lstDES[100])
如果你正试图定义基于从lstDES[100]
十六进制值的两个字节,那么你将不得不使用不同的方法;产生一个字符串\
,x
和两个十六进制数字不会神奇地调用Python用于字符串文字的相同解释。
你会使用binascii.unhexlify()
function对于代替:
import binascii
a = binascii.unhexlify(''.join(lstDES[100][:4]))
答
在Python \
用于转义字符,如\n
一个换行符或\t
的标签。
要使用文字字符串'\x'
,您需要使用两个反斜杠,一个用于有效地转义另一个,因此它将变为'\\x'
。
In [199]: a = '\\x'
In [200]: print(a)
\x
答
你需要\\x
因为\
用于转义字符:
>>> s='\\x'+'a'
>>> print s
\xa
答
尽量使原始字符串如下:
a = r'\x'+''.join(lstDES[100][:2]) + r'\x'+''.join(lstDES[100][2:])