作者yuxio (征服世界中)
看板Python
标题Re: [问题] 二进位档转ASCII档
时间Wed Jan 30 19:00:01 2013
※ 引述《bob123 ()》之铭言:
: ※ 引述《tgrk (tgrk)》之铭言:
: : 实作把二进位档变成ASCII文字档的程式,类似BASE64转换。
: : 构想是每次读取二进位档1byte,
: : 然後转成相对应的十六进位数字,存入文字档中。
: : 如下,档案会变成两倍大。
: : 二进位档 文字档
: : 1111 1110 1111 1110 --> FE FE
: with open('100M.bin','rb') as fin, open('100M.hex','w') as fout:
: fout.write(fin.read().encode('hex').capitalize())
: 第三行
小弟也来野人献曝一下,
分享自己个人工具库里与原PO问题相关的小片段
因为是个人使用的,所以只是针对字串,不是针对档案
有需要者请自行修改即可
# binary to hex string. ex, '\x12\x34\xcd\xef' -> '1234CDEF'
bin2hex = lambda b: ''.join(x.encode('hex') for x in b).upper()
# split string/sequences in same size.
# ex, strsplit('AABBCCDD',2) -> ['AA','BB','CC','DD']
strsplit = lambda seq, size: [seq[i:i+size] for i in range(0, len(seq), size)]
另外,如果是使用 Mac 或 Unix,
可以在 console 用以下的指令作转换:
xxd -u -ps 100M.bin > 100M.hex
这应该会比自己写 python 或写 c 还快 :)
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 112.104.53.35