2010-12-11 122 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