2009-08-03 16 views
21

os.write関数は(オブジェクトをファイルではない)には、ファイルディスクリプタにバイトを書き込む使用することができます。 os.write(fd, '\n')を実行すると、Windows上でもLF文字だけがファイルに書き込まれます。 Windows上のファイルにはCRLFを、LinuxにはLFのみを用意したいと思います。
これを達成する最も良い方法は何ですか?Pythonでネイティブの改行文字をファイル記述子に書き込む方法は?

私は、Python 2.6を使用していますが、Pythonの3が、別のソリューションを持っている場合、私も思ったんだけど。

+0

'os.write'は最初の引数としてFDを必要とします。 Python 3は本質的に異なるわけではありません(テキストではなく、文字列ではなく、Python 3では常にUnicodeです)。 –

+0

あなたは正しいです、ありがとう! – hcs42

答えて

46

使用この

import os 
os.write(fd, os.linesep) 
8

いかがos.write(<file descriptor>, os.linesep)? (import osは既にインポートされているようではないので、そうでなければos.writeを使ってエラーが発生します)