読者です 読者をやめる 読者になる 読者になる

沖の雑記帳

基本的には趣味に絡んで雑多な内容を色々と

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)

大体こんな感じ。
もっと効率的な書き方ってないものかな?