Python2.7でBinaryファイルを書き込みたい
読み込んだファイルのバウンダリを調整して別のファイルに書き出したいという状況でそのまま書こうとすると文字列じゃねーよって怒られた。
なので、どう書くんだろうと調べてたりして以下の様なコードを作成
なんか、えらく非効率なことをやっている気がするのですが…
一部省略して処理部分のみ
# -*- coding: utf-8 -*- with open(rdfile, 'rb') as rfp: buf = rfp.read() rdlen = len(buf) wtlen = ((rdlen + (boundary - 1)) // boundary) * boundary wtbuf = [0] * wtlen for i in xrange(rdlen) wtbuf[i] = buf[i] wtdata = bytearray(wtbuf) with open(wtfile, 'wb') as wfp: wfp.write(wtdata)
大体こんな感じ。
もっと効率的な書き方ってないものかな?