読者です 読者をやめる 読者になる 読者になる

いろいろ備忘録日記

主に .NET と Python絡みのメモを公開しています。

Pythonメモ-02 (改行コードをsplitしたい場合, splitlinesを使う)

以下、忘れないうちにメモメモ。

特定のデータがあって、改行コードでsplitしたい場合

DATA.split(os.linesep)

ってやれば、macとlinuxではうまくいくんですが windowsでやると、分割されずに一つの文字列として 結果が返ってきた。

どうも、Windowsの場合 os.linesep ではなくて

DATA.split('¥n')

ってやってやるとうまくいく。

でもなんかしっくりこないので、stackoverflow先生に聞いてみると

以下の情報発見。

stackoverflow.com

splitlinesってメソッドもあるのかと今更しったw

てことで、サンプル。

        # ----------------------------------------
        # splitとsplitlines
        # --------------------
        # 以下をmacとlinuxで実行すると同じ結果に
        # なるが、windowsで実行するとos.linesep
        # でsplitした場合に、ちゃんと分割されない
        # ときがあった。splitlinesを利用すると
        # どのOSの場合でも同じ挙動になる。
        #
        # ちなみに、Windowsの場合は os.linesep
        # ではなくて、直接 '¥n'を指定すると
        # うまくいった。
        #
        # 参考URL
        #   http://stackoverflow.com/questions/24237524/how-to-split-a-python-string-on-new-line-characters
        # ----------------------------------------
        pr('os.linesep', [line for line in DATA.split(os.linesep) if line])
        pr('splitlines', [line for line in DATA.splitlines() if line])
        # pr('for-windows', [line for line in DATA.split('¥n') if line])

github.com


以下、参考にした情報です。


過去の記事については、以下のページからご参照下さい。

サンプルコードは、以下の場所で公開しています。