Pythonはクロスプラットフォーム対応なので、様々な環境で利用することができます。したがって、キャリッジリターン(CR)やラインフィード(LF)が混在する可能性があり、それを意識したコーディングが必要となる場合があります。
そういったケースでは os.linesep
を利用して改行コードを取得することができます。以下にその使用例を示します。
import os
test_str = 'python-izm.com'
print(test_str.replace('.', os.linesep))
上記の例では「 . 」を改行コードへ置換して出力しています。
また、Pythonでファイルを読み書きするとき、改行コードはどうなるのでしょうか。この問題については、open()
関数のnewline
引数で制御されます。具体的には、newline
引数に渡す値によって、ファイルの読み書き時に改行コードがどうなるかが決まります。
例えば、open('textfile.txt', 'w', newline=None)
とした場合、書き出す文字列の「\n」は、システムデフォルトの改行コード(os.linesep
の値)へ変換されます。
以上のように、Pythonのos.linesep
は、プログラムを実行しているOSで使われる改行コードを取得するための便利なツールです。これを活用することで、クロスプラットフォームのコーディングをより容易に行うことができます。.