Python 中的防止解析转义序列

使用原始字符串来防止转义序列解析,例如 my_str = r’one\two\three’。 当一个字符串以 r 为前缀时,它会将反斜杠视为文字字符并且不需要转义它们。

# ✅ Prevent escape sequence interpretation (raw string)
my_str = r'one\two\three'
print(my_str) # ?️ one\two\three

# -------------------------------------------

# ✅ Prevent escape sequence interpretation in file path (forward slashes)
file_name = '/Users/zadmei/Desktop/avatar.png'

# ?️ /Users/zadmei/Desktop/avatar.png
print(file_name)

第一个示例使用原始字符串来防止转义序列解析。

my_str = r'one\two\three'
print(my_str)  # ?️ one\two\three


# ?️ 如果你不使用原始字符串
print('one\two\three') # ?️ one     wo      hree

原始字符串防止特殊字符自动转义。

如果我们需要在字符串中使用变量,请使用格式化的字符串文字。

variable = 'two'

my_str = fr'one\{variable}\three'
print(my_str)  # ?️ one\two\three

格式化字符串文字 f-strings 让我们通过在字符串前加上 f 来在字符串中包含表达式。

确保将表达式用大括号括起来 – {expression}。

file_name = '/Users/zadmei/Desktop/avatar.png'

# ?️ /Users/zadmei/Desktop/avatar.png
print(file_name)

当我们需要指定路径时,可以使用正斜杠代替反斜杠。

如果我们需要防止多行字符串中的转义序列解释,请使用三引号字符串。

my_str = r"""one
\two
\three"""

print(my_str)

三引号字符串使我们能够:

  • 在同一个字符串中使用单引号和双引号而不转义
  • 定义多行字符串而不添加换行符

转义反斜杠字符的另一种常见方法是使用第二个反斜杠。

my_str = 'one\\two\\three'
print(my_str)  # ?️ one\two\three

第一个反斜杠是转义字符,第二个是文字字符。

反斜杠字符在 Python 中有特殊含义,因此要将它们视为文字字符,我们必须:

  • 在字符串前加上 r 以将其标记为原始字符串
  • 在路径中使用正斜杠代替反斜杠
  • 用第二个反斜杠转义每个反斜杠