繁体   English   中英

Python原始文字字符串

[英]Python raw literal string

str = r'c:\path\to\folder\'   # my comment
  • IDE:Eclipse
  • Python2.6

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

原始字符串文字不会将反斜杠视为启动转义序列, 除非紧跟在后的字符是界定文字的引号字符时,在这种情况下,反斜杠确实会将其转义。

设计的动机是,原始字符串文字确实仅是为了方便输入正则表达式模式而存在–就是说,此类文字存在其他设计目标。 RE模式永远不需要以反斜杠结尾,但是规则可能需要包括所有引号字符。

许多人确实尝试使用原始字符串文字来使他们能够以习惯的方式(带有反斜杠)输入Windows路径-但是,您已经注意到,当您确实需要以反斜杠结尾的路径时,这种用法会分解。 通常,最简单的解决方案是使用斜杠,Microsoft的C运行时和所有版本的Python在路径中都完全等效:

s = 'c:/path/to/folder/'

(旁注: 不要用自己的标识符遮盖诸如str类的内置名称-这是一种可怕的做法,没有任何弊端,除非您习惯于避免有一天避免采取这种可怕的做法,否则您会发现自己很讨厌-调试问题,当您的代码的某些部分践踏了内置名称,而另一部分需要使用其真实含义时使用内置名称)。

恕我直言,这是Python中的不一致之处,但在文档中对此进行了描述。 转到第二段:

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM