web-dev-qa-db-ja.com

Pythonでは、文字列を印刷するときに改行文字をエスケープすることはできますか?

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

>>> print(line)
abc
def

しかし、代わりにこれ:

>>> print(line)
abc\ndef

これを実現するために、printを変更する方法、引数を変更する方法、または別の関数を完全に変更する方法はありますか?

50
Tyler

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

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

または

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

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

51
PurityLake

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

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

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

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

nicode_escapeリファレンス

78
mgilson

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

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

18
ACEfanatic02