[問題] 二進位檔轉ASCII檔
實作把二進位檔變成ASCII文字檔的程式,類似BASE64轉換。
構想是每次讀取二進位檔1byte,
然後轉成相對應的十六進位數字,存入文字檔中。
如下,檔案會變成兩倍大。
二進位檔 文字檔
1111 1110 1111 1110 --> FE FE
現在問題是這個程式很慢,1MB檔案就要跑約十分鐘。
我知道1byte就來一個迴圈,數目太多了。
但這是程式寫法不好的問題?
還是PYTHON 只能那麼慢?
while 1:
values = array.array('B') # array of integer
p=values.read(orinobj, 1) # orinobj is a binary file
if p:
break
else:
int_value = values[0]
if len(hex(int_value)) ==3:
hex_value ='0'+hex(int_value)[2:3]
else:
hex_value =hex(int_value)[2:4]
txtgobj=open(txt, 'a')
txtgobj.write(hex_value)
txtgobj.close()
orinobj.close()
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 42.70.205.62
※ 編輯: tgrk 來自: 42.70.205.62 (01/29 23:24)
→
01/30 02:02, , 1F
01/30 02:02, 1F
→
01/30 02:09, , 2F
01/30 02:09, 2F
→
01/30 08:57, , 3F
01/30 08:57, 3F
→
01/30 18:38, , 4F
01/30 18:38, 4F
討論串 (同標題文章)
Python 近期熱門文章
PTT數位生活區 即時熱門文章