あーるPG - 社会人のデジタル生活

日曜プログラマになろうかなーと思った30代理系社会人の、キャリアアップや趣味(特にデジタル情報)の記録。らーめんとビールが好き。

バイナリ入出力

array1 = [1, 1.3, 2.3, 10]
array2 = [1, 2, 3, 4]
f = open("hoge.bin", "wb")
f.write array1.pack("iffi") #01 00 00 00 66 66 A6 3F 33 33 13 40 0A 00 00 00
f.write array2.pack( "i*")  #01 00 00 00 02 00 00 00 03 00 00 00 04 00 00 00
f.write array1.pack( "i*")  #01 00 00 00 01 00 00 00 02 00 00 00 0A 00 00 00
f.close

Array#packは引数のテンプレート文字列の通りにバイナリデータを出力する
テンプレート文字列は出力の型とその連続する数で記述される。*は"残り全て"の意
逆に読み込むときはString#unpackを用いる
6行目のように、型が違っても出力の型に変換してくれる・・・と思う