2012-01-16 66 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