2012-03-09 29 views
0

我有一個要求分隔符的函數。這可以是\ t。但是,這被視爲一個真正的標籤。所以,如果我有這樣的代碼如何接受函數中的原始特殊字符?

def example(dataToBeSplit, delimiter): 
    return dataToBeSplit.split(delimiter) 
example('some\ttext','\t') 

給予例的輸入是example('some\ttext',' ')

我怎樣才能防止\噸至變成一個真正的標籤,而無需給予\\噸至功能?

*如果我把四個實際空間它被過濾掉了,所以看 - 四spaces-爲四個空間


編輯:

好了,所以從zefciu的答案我現在做

def example(dataToBeSplit, delimiter): 
    return dataToBeSplit.split(repr(delimiter)) 
example('some\ttext','\t') 

但還是想知道,如果沒有辦法在

def example(dataToBeSplit, delimiter): 
要做到這一點

部分

+0

燦你更清楚地陳述你的問題?我知道Python字符串操作,轉義和編碼相當好,但我不知道你在問什麼。 – Deestan 2012-03-09 11:49:15

回答

2

如果你想看到在表單中的字符串時,它可以通過蟒蛇被接受,使用再版():

>>> print repr('some\ttext') 
'some\ttext' 
0

用戶r字符串文字:

example('some\ttext',r'\t') 
+0

這與使用\\ t相同,但我不想提供原始數據,我希望它採取任何方式並將其視爲原始數據 我現在看到我的雙\\被篩選出來了 – 2012-03-09 11:39:10

+0

但「它」doesn 't'得到'你聲稱它做了什麼。如果用戶輸入一個反斜槓,然後輸入'input'提示符,則該字符串將包含一個反斜槓,後面跟着at,即''\\ t「'或'r」\ t「',如果您表達了它在代碼中。如果字符串是代碼的一部分,那麼當然你需要一些轉義,以便Python知道什麼是字符串的一部分,代碼的其餘部分是什麼。 – 2012-03-09 12:05:14

相關問題