我想在 Python 中将字节字符串的双反斜杠替换为单反斜杠。
例如 有一个字节字符串。
word = b'Zxa6x97x86j2x08q\rxcaxe6m'
我需要这个字节字符串。
word = b'Zxa6x97x86j2x08qrxcaxe6m'
如果我使用替换,例如:
word = word.replace(b"\",b"")
我收到此错误。
File "test.py", line 79
word = word.replace(b"\", b"")
^
SyntaxError: EOL while scanning string literal
有谁知道该怎么做?
\
不是双反斜杠,而是一个转义。看:
print b'Zxa6x97x86j2x08q\rxcaxe6m'
# Z���jqr��m
r
(来自您想要的输出(不是 2 个字符,而是 1 个字符:
print b'Zxa6x97x86j2x08qrxcaxe6m'
# ��m�jq
(打印到终端时,回车r
阻止我们看到第一个字母Z
(
如果你真的想用'r'
替换'\r'
,你可以做到:
print repr(word.replace('\r', 'r'))
# 'Zxa6x97x86j2x08qrxcaxe6m'
print word.replace('\r', 'r')
# ��m�jq
或者,如果要替换所有转义序列。Python2版本:
print repr(b'1\t2\n3'.decode('string_escape'))
# '1t2n3'
print b'1\t2\n3'.decode('string_escape')
# 1 2
# 3
Python3版本:
print(repr(b'1\t2\n3'.decode('unicode_escape')))
# '1t2n3'
print(b'1\t2\n3'.decode('unicode_escape'))
# 1 2
# 3
您的r
是一个回车符。所以\r
加上回车。您不会在字符串中找到
\
。
"有效"的是用CR替换反斜杠+ CR:
word = b'Zxa6x97x86j2x08q\rxcaxe6m'
print(word.replace(b"\r",b"r"))
结果:
b'Zxa6x97x86j2x08qrxcaxe6m'
但我不确定这是你从一开始就的意思(即:在你的字节字符串中插入回车字符(
你有一个字节流。 您需要转义"\"并解码字节。
word = b'Zxa6x97x86j2x08q\rxcaxe6m'
new_word = (str(word).encode('utf-8'))
print(new_word.replace(b"\\",b"\").decode('ascii'))