アプリケーションでテキストを生成しています。テキストはより大きなメッセージの一部であるため、改行を追加する必要がある場合もあります。
NEWLINE = '\n' # TODO: how to define this cross-platform? Can I use os.linesep?
def get_txt(add_newline=False):
txt = 'Hello'
if add_newline:
txt += NEWLINE
return txt
これは次のように使用できます。
def get_message():
msg = get_txt(True)
msg += get_txt(True)
msg += get_txt(False)
return msg
どちらが返されますか:
Hello
Hello
Hello (no newline here)
クロスプラットフォームの方法でNEWLINE
を定義するにはどうすればよいですか?またはさらに良いことに、文字列に改行を追加できる関数が標準ライブラリ(またはPythonに含まれています)にありますか? (必ずしも印刷するときではなく、メモリ内の文字列に改行を追加するだけです)。使用された改行は、プラットフォームに適したものである必要がありますpython is running
私はいつも改行文字'\n'
改行を表すために、Windowsでは改行と復帰文字を使用していますが、Windowsマシン(python 3.4)でテストして、メモリ内に文字列を作成し、それをファイルに書き込みましたが、メモリ内では1文字のままです( '\n'
)ただし、ファイルに書き込むと、ウィンドウで終了する正しい行になるように2文字に変換されます。
これまで、これに問題のある単一のライブラリに出会う必要はありません。
これで試すことができます:
import os
print(os.linesep)
メッセージを新しい行として表示するには、メッセージを印刷する必要があります。
get_txt()
msg = get_message()
print(msg)
あなたに与えるでしょう:
Hello
Hello
Hello
ファイルに出力することを確認する必要があるだけです。