私は簡単なコードを持っています:
f = open('out.txt','w')
f.write('line1\n')
f.write('line2')
f.close()
コードはWindows上で実行され、ファイルサイズは12 bytes
になり、Linuxは11 bytes
になります。理由は改行です
Linuxでは\n
であり、勝つためには\r\n
です。
しかし、私のコードでは、\n
として改行を指定しています。問題は、pythonを常に\n
として保持し、オペレーティングシステムをチェックしないようにする方法です。
ファイルをバイナリモードで開く必要があります。つまり、wb
ではなくw
です。そうしないと、行末文字がOS固有の文字に自動的に変換されます。
open()
に関するPythonリファレンスからの抜粋です。
デフォルトでは、テキストモードを使用します。このモードでは、書き込み時に「\ n」文字をプラットフォーム固有の表現に変換し、読み取り時に戻すことができます。
あなたはまだテキストモードを使用し、キーワード引数newlineでline-newlineを強制することができます
f = open("./foo",'w',newline='\n')
Python 3.4.2でテスト済み。
編集:これはPython 2.7では機能しません。