簡體   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