Pythonのwritelines
メソッドは、リストやタプルなどのイテラブルなオブジェクトをファイルに書き込むためのメソッドです。しかし、このメソッドを使っても改行コードを書かない限り、改行されずに書き込まれます。
また、Pythonでファイルを読み書きするとき、改行コードはどうなるのでしょうか?この問題は、open
関数のnewline
引数によって制御されます。
例えば、以下のようにopen
関数でnewline
引数を指定することができます。
open('textfile.txt', 'w', newline=None)
open('textfile.txt', 'w', newline='')
open('textfile.txt', 'w', newline='\\n')
newline
引数に渡せる値とその動作は以下の通りです。
None
: 書き出す文字列の「\n」は、システムデフォルトの改行コード(os.linesepの値)へ変換される。''
(空文字列)または'\\n'
: 書き出す文字列の改行コードは変更されず、そのまま書き出される。'\\r'
または'\\r\\n'
: 書き出す文字列の「\n」は、newline
引数の値へ変換される。
このように、Pythonのwritelines
メソッドと改行コードの扱いについて理解することは、ファイル操作を行う際に非常に重要です。