python - 如何在 Python 中将双反斜杠替换为单个字节字符串

标签 python byte

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

\r(来自您想要的输出)不是 2 个字符而是一个:

print b'Z\xa6\x97\x86j2\x08q\r\xca\xe6m'
# ��m�jq

(打印到终端时,carriage return \r 阻止我们看到第一个字母 Z)

如果您真的想用'\r'替换'\\r',您可以这样做:

print repr(word.replace('\\r', '\r'))
# 'Z\xa6\x97\x86j2\x08q\r\xca\xe6m'
print word.replace('\\r', '\r')
# ��m�jq

或者,如果你想替换所有的 escape sequences . 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

关于python - 如何在 Python 中将双反斜杠替换为单个字节字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51210485/

相关文章:

c - 填充 int 变量中的字节

python - json响应有什么问题

ios - 如何在 swift 中将字节转换为浮点值?

cocoa - 生成随机字节 Cocoa?

python - ACCESS_REFUSED - 使用身份验证机制 AMQPLAIN 拒绝登录。有关详细信息,请参阅代理日志文件

c# - 在 C# 中从 short 转换为 byte 时会发生什么?

c - 如何找到 sizeof 结构?

python - 从 noses setup package() 迁移到 pytest

Python selenium 将键发送到文本区域

python - 用于在特定浏览器中打开 Google 搜索的脚本