2013-06-20 45 views
1

使用Python V.3.3的Python 3.3 - 需要幫助從.txt

我不知道如何使用,這是十六進制數據來創建一個。PNG(或任何其他圖片文件)寫入數據.png文件寫在記事本文件中。目前它讀取一個圖片文件。從那裏它變成十六進制格式,然後保存到記事本文件。然後它讀取記事本文件並抓取數據。

我遇到的問題是,當它試圖寫一個新的圖片文件,但沒有存儲數據。無論我嘗試什麼,我都會得到一個空白的0字節圖片。我該如何解決?有什麼特定的格式我需要使用我的getbyte變量?任何幫助將非常感激。我試圖讓這個工作,以便更容易發送/存儲數據2D遊戲地圖。

import binascii 

f = open("c:/test1.png", "rb") 
ima = f.read() 
f.close() 
print (binascii.hexlify(ima)) 

f = open("file123.txt", "w") 
f.write(binascii.hexlify(ima).decode('utf-8')) 
f.close() 
#----------- 
f = open("file123.txt", "r+") 
getbyte = f.read() 
f.close() 

getbytes = (binascii.unhexlify(getbyte)) 
getbyte = (binascii.hexlify(getbytes)) 

f = open("filetest.png", "wb") 
f.write(getbyte) 
f.close 

#----------- 

回答

2

將其保存爲二進制圖像,寫getbytes

getbytes = (binascii.unhexlify(getbyte)) 
f = open("filetest.png", "wb") 
f.write(getbytes) 
f.close 

我想你也期待在錯誤的目錄,嘗試以不同的名稱保存,看看它是否創建該文件。

+0

感謝您的回覆。我只是嘗試了unhexlify版本,仍然以0字節結尾。這可能與.decode()有關嗎?至於文件,腳本和文件位於我的桌面上。只有第一個使用的文件位於C:\ –

+0

我只是試圖用我自己的圖像(jpeg)之一跟蹤該示例並正確設置路徑。 perreals暗示寫getbytes是解決方案! –

+0

出現了這樣的事情(我縮短了)b'\ x89PNG \ r \ n \ x1a \'。 –