2012-03-09 54 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

相关问题