Planet Python 日本語 フォロー ジェームズ・ベネット:分断(線)は難しい テキストをラインに分割するという一見単純なタスクは、歴史的および進化する標準により、驚くほど複雑です。初期のコンピューティングはASCIIに依存しており、ラインブレークのためにLINE FEED (LF) および CARRIAGE RETURN (CR) のような制御文字を含んでいました。異なるオペレーティングシステムはこれらの様々な組み合わせを採用し、プレーンテキストのポータビリティの問題を引き起こしました。例えば、WindowsはCR LFを使用し、UnixはLFを使用し、クラシックMac OSはCRを使用します。Pythonは、ファイルをオープンする際に3つの一般的なラインブレークフォーマットすべてを認識する「ユニバーサルニューライン」モードを導入することで、これに対処しました。従来のCRとLFを超えて、ASCIIはFORM FEED (FF) および VERTICAL TAB (VT) も定義しており、これらもラインブレークを引き起こします。Unicodeの登場は、7つの新しいコードポイントとCR LFシーケンスをラインブレークインジケーターとして導入しました。これらには、LINE FEED、LINE TABULATION、FORM FEED、CARRIAGE RETURN、NEXT LINE、LINE SEPARATOR、およびPARAGRAPH SEPARATORが含まれます。さらに、Unicodeの双方向アルゴリズムは、双方向クラスが「B」の文字を段落区切りとして考慮しており、これらもラインブレークとして機能します。これらには、ASCII名FILE SEPARATOR、GROUP SEPARATOR、およびRECORD SEPARATORとしても知られるINFORMATION SEPARATOR FOUR、THREE、およびTWOが含まれます。合計で、Pythonのsplitlines()メソッドは、10個の異なるコードポイントと1つのマルチコードポイントシーケンスをラインブレークとして認識します。この包括的なセットは、テキストラインの分割を処理するための歴史的な慣習と最新のUnicode標準に対応しています。 James Bennett: Breaking up (lines) is hard to do b-list.org Planet Python 日本語 RSS thenote.app
splitlines()メソッドは、10個の異なるコードポイントと1つのマルチコードポイントシーケンスをラインブレークとして認識します。この包括的なセットは、テキストラインの分割を処理するための歴史的な慣習と最新のUnicode標準に対応しています。