有没有一种方法可以在Python中动态地将r'附加到字符串上?

时间:2020-11-04 12:58:48

标签: python r checksum rawstring

我是Python的新手,我正在计算具有反斜杠()的字符串的校验和。我能够提出一个逻辑来计算校验和,但是该函数需要字符串以原始格式(r')来计算正确的校验和。但是,此函数将由另一个函数调用,并且我将无法手动将字符串转换为原始字符串。有人可以帮助我如何动态实现这一目标。

这是字符串:

raw_message1 = '=K+8\\\08|'

该字符串具有3个反斜杠,但是保存后仅显示2个,并且该字符串可能会再次发生变化,因此处理后进行替换无济于事。

当我打印结果时:

print(message1)
=K+8\ 8|

我需要的是保留一些反斜杠的东西。我不能选择其他任何字符,因为每个字符都有其自己的ASCII值,并且校验和会有所不同。我尝试了前面提到的所有其他选项,每种情况看到的结果都不一样。

2 个答案:

答案 0 :(得分:1)

您可以这样定义字符串:

message1 = r'=K+8\\08|'

这应使message1字符串为原始格式。

让我知道这是否有帮助。我真的不明白您是手动转换为原始字符串并动态转换为什么意思。这是我目前能提供的最大帮助。

答案 1 :(得分:0)

所有r前缀都是手动添加反斜杠,因此您不必这样做,它不会“神奇地”保留反斜杠,而是将其替换为双反斜杠,因此它们被解释为单反斜杠。

看下面的例子:

>>> s = r"\rando\\\mst\ri\ngo\\flet\ters"
>>> s
'\\rando\\\\\\mst\\ri\\ngo\\\\flet\\ters'
>>> print(s)
\rando\\\mst\ri\ngo\\flet\ters
>>>

该字符串实际上包含双反斜杠,并且在打印时会被解释为单反斜杠。