2010年2月19日金曜日

Python - アドエスで赤外線受信したjpgファイルをbase64デコードする

WILLCOMが倒産しました。それはさておきWILLCOMつながりで。
アドエスで赤外線通信すると受信したときになぜかbase64エンコードされたままになってしまいます。
特定の機種相手だとこうなるのかどうかは実験してないのですが。。。
これはイヤなので自分でbase64デコードするコードを書きました。
ほかに困っている人がいるかもしれないので一応ポスト。
#!/usr/bin/env python
# -*- coding: utf-8 -*-

import sys
import string
import base64

start_string = 'BASE64:'
end_string = 'X-NEC-POSITION'

if len(sys.argv) == 1:
    print 'ファイル名を入力してください。'
    sys.exit(1)

file_name = sys.argv[1]

fp = open(file_name, 'r')
data = fp.read()
fp.close()
start = data.find(start_string) + 7
#print start

data = data[start:]
end = data.find(end_string) - 2
#print end
data = data[:end]

#print data

data = base64.decodestring(data)

#print data

file_name = file_name[:file_name.find('.') + 1]
file_name = file_name + 'jpg'

fp = open(file_name,'wb')
fp.write(data)
fp.close()

0 件のコメント: