16

我发现这个可能非常有用的 python脚本,但遇到了这些我以前从未见过的表达式:

inputfilename = r'/path/to/infile'
outputfilename = r'/path/to/outfile'

我找不到搜索它的方法。做什么r'...'

谢谢你的帮助!

4

3 回答 3

14

r'..'字符串修饰符使字符串'..'字面意思解释。这意味着,r'My\Path\Without\Escaping'将评估为'My\Path\Without\Escaping'- 而不会导致反斜杠转义字符。先验等效于'My\\Path\\Without\\Escaping'字符串,但没有原始修饰符。

注意:字符串不能以奇数个反斜杠结尾,即r'Bad\String\Example\'不是正确的字符串。

于 2013-09-26T17:34:59.623 回答
3

它被称为原始字符串文字。

根据Python String literals documentation

反斜杠 (\) 字符用于转义具有特殊含义的字符,例如换行符、反斜杠本身或引号字符。字符串文字可以选择以字母“r”或“R”作为前缀;此类字符串称为原始字符串,并使用不同的规则来解释反斜杠转义序列。

...

除非存在 'r' 或 'R' 前缀,否则字符串中的转义序列将根据类似于标准 C 使用的规则进行解释

于 2013-09-26T17:35:10.560 回答
2

它只是意味着Python 中的原始字符串。这意味着字符串中的任何内容都是字符串。例如,如果您想添加斜杠:

string1 = "happy\/cheese"

您需要\在斜杠前面添加,因为它是一个转义字符。例如,\n表示新行。

如果您保持字符串原始,则可以确保字符串中的任何内容都不会以特殊方式解释。例如,如果你写了string2 = r"\n",它只会给你"\n"一个字符串,而不是一个新行。

您可以从这里了解更多关于它们的信息。

现在,这是在您的情况下完成的,因为文件路径有很多斜杠,我们希望避免输入这么多反斜杠。

于 2013-09-26T17:35:54.437 回答