経緯 Windows環境で動作しているPythonスクリプトでテキストファイルのソートが必要になりました。 要件としては次のようなものです。 Windows環境で実行 対象ファイルは数GBのCSVファイル ソートキーは複数のカラムで数値のカラムもある Windowsコマンドプロンプトにはsortコマンドがあり、巨大なファイルのソートには対応しています。 しかしLinuxのsortコマンドと違い、区切り文字を指定したり(-t)、数値としてソート(-n)することはできません。 サイズが小さければPythonスクリプトで全データをメモリに読み込んでsorted関数を呼べば済むのですが、サイズが大きい場合はメモリ不足になる可能性があります。 仕方がないのでPythonで巨大なファイルに対応したソート処理を実装することにしました。 処理手順 巨大なデータをソートするにはマージソートの考え方で以下のよ