Python原始文字字符串

Sta*_*tan 13 python string rawstring

str = r'c:\path\to\folder\'   # my comment
Run Code Online (Sandbox Code Playgroud)
  • IDE:Eclipse
  • python2.6的

当字符串中的最后一个字符是反斜杠时,它似乎会转义最后一个单引号并将我的注释视为字符串的一部分.但原始字符串应该忽略所有转义字符,对吧?可能有什么不对?谢谢.

Ale*_*lli 35

原始字符串文字不会将反斜杠视为启动转义序列,除非紧跟在后面的字符是分隔文字的引号字符,在这种情况下,反斜杠转义它.

设计动机是原始字符串文字真正存在只是为了方便输入正则表达式模式 - 这就是全部,没有其他设计目标存在于这样的文字.RE模式永远不需要以反斜杠结束,但它们可能需要包含各种引用字符,从而规则.

许多人确实尝试使用原始字符串文字来使它们按照习惯的方式进入Windows路径(使用反斜杠) - 但是正如您所知,当您需要以反斜杠结束的路径时,这种使用会中断.通常,最简单的解决方案是使用斜杠,Microsoft的C运行时和所有版本的Python支持在路径中完全等效:

s = 'c:/path/to/folder/'
Run Code Online (Sandbox Code Playgroud)

(旁注:不要str用你自己的标识符来影响内置名字- 这是一种可怕的做法,没有任何好处,除非你养成了有朝一日避免那种可怕做法的习惯,你会发现你有一个讨厌的 -调试问题,当你的代码的某些部分践踏内置名称而另一部分需要使用内在名称的真正含义时).

  • 使用`/`正确解释Windows路径的+1 (3认同)

Eik*_*ike 9

这是恕我直言,Python中的不一致,但它在文档中描述.转到最后一段:

http://docs.python.org/reference/lexical_analysis.html#string-literals

r"\"不是有效的字符串文字(即使原始字符串不能以奇数个反斜杠结尾)