ちょっとしたバイナリファイルをPythonで作成する方法。
import struct
def main():
with open("data", "wb") as fout:
for x in [0xFF, 0x12, 0x89]:
fout.write(struct.pack("B", x))
if __name__ == "__main__":
main()
hexdump
コマンドで作成したファイルの中身を確認してみます。
% hexdump data
0000000 ff 12 89
0000003
問題なく作れていますね。
(追記 2013-09-07)
shiracamus さんにコメントで bytearray を教えていただきました。こちらの方が import も必要ないので手軽ですね。
def main():
with open("data", "wb") as fout:
bary = bytearray([0xFF, 0x12, 0x89])
bary.append(0)
bary.extend([1, 127])
fout.write(bary)
if __name__ == "__main__":
main()
hexdump
の実行結果です。
% hexdump data
0000000 ff 12 89 00 01 7f
0000006