2016-12-09 47 views
1

this questionと答えるために、printという文字列をバックスラッシュをエスケープして取得することができました。私はすべての文字をエスケープエスケープすることを一般化しようとすると文字列のエスケープ文字をエスケープできません

、それは何もしないようだ:

>>> a = "word\nanother word\n\tthird word" 
>>> a 
'word\nanother word\n\tthird word' 
>>> print a 
word 
another word 
     third word 
>>> b = a.replace("\\", "\\\\") 
>>> b 
'word\nanother word\n\tthird word' 
>>> print b 
word 
another word 
     third word 

が、特定のエスケープ文字については、この同じ方法で、それは仕事のことを行います

>>> b = a.replace('\n', '\\n') 
>>> print b 
word\nanother word\n third word 
>>> b 
'word\\nanother word\\n\tthird word' 

ですこれを達成するための一般的な方法はありますか?以下のコードのように、「生使用r'textとして、あなたの文字列を定義するなど\n\t\r

+0

あなたの文字列に一致するように、何のリテラルバックスラッシュはありません。 *リテラル*には、改行を指定するための2文字のシーケンス '\ n 'が含まれていますが、Pythonはそれを結果の' str'オブジェクトの1つのリテラル改行文字に変換します。 – chepner

答えて

2

を含める必要があります。

a = r"word\nanother word\n\tthird word" 
print(a) 
word\nanother word\n\tthird word 

b = "word\nanother word\n\tthird word" 
print(b) 
word 
another word 
     third word 
+0

生の文字列はまさに私が探していたものです、ありがとう! – Will

+0

ようこそ。 – daniboy000