最初は
f = open('hogedata','w') for packet in packets: f.write(packet) f.close()
こう書いてた。Macだと上手くいくのだけど、Windowsで試して貰った時にダメだった。ダメだったというのは、Macで作った時と何故か違うファイルが出来ているっぽかった。ファイルサイズもそもそも違うし、出来たファイルを後工程で使うものに渡してもエラーで動かない。
あれなんでだろ。。?と思っていろいろ調べていくと、
https://docs.python.jp/2.7/library/functions.html?highlight=open#open
バイナリとテキストファイルを区別するシステムでは、ファイルをバイナリモードで開くためには 'b' を追加してください; 区別しないシステムでは 'b' は無視されます。
あと、毎回新しくファイルを作り直したかったので、w+
にした
f = open('hogedata','w+b') for packet in packets: f.write(packet) f.close()
バイナリをなんかする時はちゃんとバイナリモードでファイルを開きましょう。
それにしても、Mac上でもうまくいかないでほしい。。けど、Wndowsとなにかしら違うからそういうもんなのかな?(雑)