2010-12-11 109 views
14

我有字符串U,它的內容是可變的。我想使它成爲一個原始字符串。我如何去做這件事?Python原始字符串

類似於r「方法的東西。

U = str(var) 
+6

原始字符串在定義字符串常量時只是一種不同的語法。特別是你想從VAR中獲得什麼,使你想到使用原始字符串? – 2010-12-11 04:53:18

+1

你使用Python 2還是Python 3?如果Python 3,你是否在問'bytes'類型? – 2010-12-11 05:06:18

回答

17

原始字符串僅適用於字符串文字。它們存在以便您可以更方便地表示將通過轉義序列處理進行修改的字符串。在寫出正則表達式或字符串文字中的其他形式的代碼時,這是非常有用的。如果你想要一個沒有轉義處理的unicode字符串,只需在ur的前面加上前綴即可,如ur'somestring'

+6

我不希望@TokenMacGuy知道這一點,但它們對於在Windows上定義路徑也很有用,它在路徑中使用反斜槓作爲分隔符,例如'r'C:\ Python27 \ Tools \ Scripts \ 2to3。 py'' – martineau 2010-12-11 09:38:57

+8

唉,TokenMacGuy就是這個名字。我的主機運行Windows。 *真實*原因我不使用原始字符串的文件路徑是因爲我從來沒有硬編碼路徑名。 – SingleNegationElimination 2010-12-11 15:27:34

35

原始字符串是不是一種不同類型的字符串。它們是在源代碼中描述字符串的不同方式。一旦字符串被創建,它就是它。

+6

對於難得的準確使用「+1它是什麼」 – LoveMeSomeCode 2014-04-10 15:38:15

+0

這實際上是錯誤的。在這裏有一個正確答案的答案:「原始字符串不會漏掉任何內容」。 – igorsantos07 2017-11-08 19:51:19

26

我相信你要找的是str.encode(「string-escape」)函數。例如,如果你有一個變量要「原始字符串」:

a = '\x89' 
a.encode('unicode_escape') 
'\\x89' 

注意:使用string-escape爲Python 2.x和舊版本

我正在尋找一個類似的解決方案,並找到了解決方案: casting raw strings python

+0

這是解決方案。 – erikbwork 2013-11-13 13:16:27

+4

關於python 3.5.1:'LookupError:unknown encoding:string-escape' – nnyby 2016-01-03 18:07:25

+0

@nnyby改用'unicode_escape' – 2017-10-09 09:59:21