2012-03-09 9 views
0

私はデリミタを求める機能を持っています。これは\ tでもかまいません。しかし、これは実際のタブとみなされます。私はこのコード関数で生の特殊文字を受け入れる方法は?

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

例に与えられた入力を持っているのであればexample('some\ttext',' ')

は、どのように私は、\ tは関数に\\トンを与えることなく、本物のタブに変えなければ防ぐことができますか?

*私は4実際にスペースを入れた場合、それは除外されますので、-four


4つの本物のスペースとしてspaces-編集を参照してください。zefciuの答えから私は今

を行うよう

[OK]を

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

しかし、まだ

def example(dataToBeSplit, delimiter): 
でこれを行う方法がない場合は不思議

一部

+0

缶あなたはあなたの問題をより明確に述べていますか?私はPythonの文字列操作、エスケープ、エンコーディングを知っていますが、あなたが何を求めているのか分かりません。 – Deestan

答えて

2

あなたはそれはPythonで受け入れ可能な形式の文字列を表示したい場合は、使用のrepr():

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

ユーザーr文字列リテラル:

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

これは\\ tを使用するのと同じですが、生データを与えたいとは思っていません。何でも取得して生データとして参照してください。 私のダブル\\はフィルタリングされました –

+0

しかし "それ"あなたがそれが何を主張するのかを知ることはできません。ユーザが 'i​​nput'プロンプトに応答してバックスラッシュを入力した後にatを入力すると、その文字列はバックスラッシュの後にat、すなわち' '\\ t" 'または' r "\ t" 'で構成されますそれはコードです。文字列がコードの一部である場合は、もちろん、エスケープする必要があります。そのため、Pythonは文字列の一部とその残りの部分を認識します。 –

関連する問題