68

\n他の場所から取得した文字列を印刷するときに改行を明示的に表示したい。したがって、文字列が「abc\ndef」の場合、これは発生したくありません。

>>> print(line)
abc
def

しかし、代わりにこれ:

>>> print(line)
abc\ndef

これを達成するために、印刷を変更したり、引数を変更したり、別の関数を完全に変更したりする方法はありますか?

4

3 に答える 3

115

'string_escape'コーデックでエンコードするだけです。

>>> print "foo\nbar".encode('string_escape')
foo\nbar

python3では、'string_escape'になりunicode_escapeました。さらに、バイト/ユニコードについてもう少し注意する必要があるため、エンコード後にデコードが必要になります。

>>> print("foo\nbar".encode("unicode_escape").decode("utf-8"))

unicode_escape リファレンス

于 2013-03-13T17:49:52.307 に答える
61

エスケープ文字を使用してPythonを停止できる別の方法は、次のような生の文字列を使用することです。

>>> print(r"abc\ndef")
abc\ndef

また

>>> string = "abc\ndef"
>>> print (repr(string))
>>> 'abc\ndef'

使用の唯一の問題repr()は、文字列を一重引用符で囲むことです。引用符を使用する場合に便利です。

于 2013-03-13T17:59:34.217 に答える
28

最も簡単な方法: str_object.replace("\n", "\\n")

すべてのエスケープ文字を表示したい場合は、他の方法の方が適していますが、気にするのが改行だけの場合は、直接置換を使用してください。

于 2013-03-13T18:26:50.640 に答える