我想将 Python 中字节字符串的双反斜杠替换为单反斜杠。
例如,
有一个字节字符串。
word = b'Z\xa6\x97\x86j2\x08q\\r\xca\xe6m'
我需要这个字节字符串。
word = b'Z\xa6\x97\x86j2\x08q\r\xca\xe6m'
如果我使用替换:
word = word.replace(b"\\",b"\")
我收到这个错误。
File "test.py", line 79
word = word.replace(b"\\", b"\")
^
SyntaxError: EOL while scanning string literal
有谁知道该怎么做?
\\
不是双反斜杠,而是一个转义符。看:
print b'Z\xa6\x97\x86j2\x08q\\r\xca\xe6m'
# Z���jq\r��m
And \r
(来自您想要的输出)不是 2 个字符,而是 1 个:
print b'Z\xa6\x97\x86j2\x08q\r\xca\xe6m'
# ��m�jq
(将其打印到终端时,回车 https://en.wikipedia.org/wiki/Carriage_return \r
阻止我们看到第一个字母Z
)
If you really想要更换'\\r'
with '\r'
, 你可以做:
print repr(word.replace('\\r', '\r'))
# 'Z\xa6\x97\x86j2\x08q\r\xca\xe6m'
print word.replace('\\r', '\r')
# ��m�jq
或者,如果您想替换所有转义序列 https://docs.python.org/2.0/ref/strings.html。 Python2版本:
print repr(b'1\\t2\\n3'.decode('string_escape'))
# '1\t2\n3'
print b'1\\t2\\n3'.decode('string_escape')
# 1 2
# 3
Python3版本:
print(repr(b'1\\t2\\n3'.decode('unicode_escape')))
# '1\t2\n3'
print(b'1\\t2\\n3'.decode('unicode_escape'))
# 1 2
# 3
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)