指定バイト数でファイルを作る(Python)

ファイルIO系のテストをする時に、指定したバイト数ちょうどで、かつ、ランダムな内容のファイルをPythonで作成する方法

指定サイズのファイルを作る方法は、macだとmkfileが有名だが、この方法では1byte単位までは指定できない

簡単なテストならともかく、ちゃんと境界値チェックを行いたい場合には、任意のバイト数ぴったりのファイルが必要となるので、それを作成するスクリプト

ソース

まずはnumpyを使って、コマンドラインの引数で指定されたバイト数分のランダムなバイナリを作成する

numpy.random.bytes(int(sys.argv[1]))

あとは、単純にそのバイナリをファイルへ書き出しているだけ。 ちなみにwithは例外の処理やらcloseを勝手にしてくれる便利なもの

使い方

python r.py 1000

といった感じにすれば、1000byteのファイルが1000.binという名前で生成される

pythonはライブラリが充実しているので、こういうスクリプトをサクッと作るのに便利