Re: [問題] 二進位檔轉ASCII檔

看板Python作者 (征服世界中)時間12年前 (2013/01/30 19:00), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串4/7 (看更多)
※ 引述《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
文章代碼(AID): #1H2Fqu_Q (Python)
文章代碼(AID): #1H2Fqu_Q (Python)