如何在 Python 中使用将双反斜杠替换为单个反斜杠作为字节字符串



我想在 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'))

最新更新