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