web-dev-qa-db-ja.com

Python適切な行末を取得

現在のオペレーティングシステムで使用されている種類の行末を取得する簡単な方法はありますか?

64
Evan Fosmark

テキストモードで開いたファイルを操作している場合は、改行がすべて「\n '。それ以外の場合は、 os.linesep

http://docs.python.org/library/os.html から:

os。linesep

現在のプラットフォームで行を区切る(または、むしろ終了する)ために使用される文字列。これは、POSIXの「\ n」などの単一文字、またはWindowsの「\ r\n」などの複数文字の場合があります。テキストモード(デフォルト)で開かれたファイルを書き込むときに、行終端記号としてos.linesepを使用しないでください。代わりに、すべてのプラットフォームで単一の「\ n」を使用します。

97
dF.

ああ、私はそれを理解しました。どうやら、 PEP-278 は次のように述べています:

入力ファイルで終わる行はすべてPythonで「\ n」と見なされるため、ユニバーサル改行を処理するために他のコードを変更する必要はほとんどありません。

19
Evan Fosmark

テスト応答を指定する場合。ファイルを開くときにバイナリを正しく使用し、ユニバーサル改行を使用すると、ほとんどの場合、異なる改行を心配する必要はありません。

ただし、必要な場合は os.linesep を使用します

6
oefe

os.linesepは、osに依存しているため(名前が示すとおり:))重要です。

例えば。 Windowsでは、「\ n」ではなく「\ r\n」です。

ただし、マルチプラットフォームのものを気にしない場合は、「\ n」を使用できます。

0
Vlad K.