Python命令中的'r'是什么意思?

3

这个问题可能已经在某个时间的某个地方得到了回答,但我看到的标题没有联系,所以我来解释一下。我看到过使用Python命令读取os.listdir(r".\bootstrapper")的代码。那么这里的'r'是什么意思呢?

感谢您的阅读...

5个回答

6

它可以防止Python解释器将字符串中的特殊字符(例如反斜杠)附加任何特殊含义,只是按原样解释它(即以其“原始”形式)。这是您可以“转义”使用的字符串中的特殊字符的一种方法。

您经常会在路径规范中看到原始字符串。 假设路径包含以t开头的目录,例如c:\ tests \ data.csv ,因此您不希望 \ t 被解释为制表符,因此使用 r 修改符。


有点挑剔,但请注意Python不会将特殊含义附加到字符串上,而是附加到字符串字面值中的反斜杠(转义序列)上。 - Ben Hoyt
@benhoyt 已经注意到了,我会更新我的解释,使其更加精确 - 谢谢。 - Levon
@user466740 友情提示,如果这个回答解决了您的问题,请考虑通过点击我回答旁边的复选标记接受此答案。这将标记问题为已解决,并奖励我们一些声望分 - 谢谢。 - Levon

3

r代表原始输入。这意味着字符串中的普通转义字符将被忽略(如\)


2

这是一个原始字符串,它去除了反斜杠的特殊性质。

参考资料.


引用是个好主意 -- 但你链接到了 re 模块,而不是关于字符串字面值(包括原始字符串)的文档。 - Ben Hoyt

1

它将其转换为原始字符串。换句话说,反斜杠将被保留。'\n'被解释为新行,但r'\n'被解释为字面字符'\'和'n'。

还要注意,如果您正在使用python2.x代码,偶尔会看到u'string'。这意味着该字符串应被解释为Unicode字符串。(在python 3.x中,所有字符串都被解释为Unicode)


Python 3.3将允许使用u Unicode指示符(http://www.python.org/dev/peps/pep-0414/),在将2移植到3时少了一件需要担心的事情。 - Steven Rumbalski

1

r 表示 原始输入。如果一个字符串被标记为 r,那么该字符串中任何特殊字符的含义都将被忽略,最常见的情况是 反斜杠


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接