2012-01-16 69 views
7

可能重复:
Process escape sequences in a string in Python是否有Python模块来解析原始字符串中的换行符号?

如果我得到这个字符串,例如从Web表单:

'\n test' 

'\n'符号将不被解释为越线。我如何解析这个字符串,以便它变成换行符?

当然我可以使用replace,split,re等手动完成。

但也许有一个模块,因为我不想被迫手动处理所有\something表示法。

我试图把它变成字节,然后使用str为construtor但是,这并不工作:

>>> str(io.BytesIO(ur'\n'.encode('utf-8')).read()) 
'\\n' 
+0

你确定它不会被解释为换行符吗?你的意思是repr(thestring)是'\ n测试'还是''\ n测试'“? – AdamKG 2012-01-16 12:05:30

+0

它不能被解释为换行符。换行符只能在源代码中用字符串解释。这个输入来自网络,如果你想要一个相当的代码,你需要写一个带'r'前缀的litteral。 – 2012-01-16 12:08:00

+0

你的意思是不解释为换行符?你可能会换成''\\ n''吗? – jcollado 2012-01-16 12:08:35

回答

13

使用.decode( 'string_escape')

>>> print "foo\\nbar\\n\\tbaz" 
foo\nbar\n\tbaz 
>>> print "foo\\nbar\\n\\tbaz".decode('string_escape') 
foo 
bar 
     baz 

正如我键入代码,上面的字符串必须包含2个字符\ n

编辑:实际上这是一个重复的Process escape sequences in a string in Python