[英]Python - writing a two byte string as a single byte hex character to a binary file
我正在編寫一個python腳本,該腳本打開一個文件並讀取兩個字符串值,例如32或6f。 然后應該將該值作為單個字節寫入十六進制的二進制文件,例如0x32或0x6f。
file_in = open('32.xml')
file_contents = file_in.read()
file_in.close()
file_out = open('testfile', 'wb')
file_out.write(file_contents)
file_out.close()
在此示例中,32.xml是包含字符串“ 32”的純文本文件。 但是測試文件輸出文件的內容為“ 32”,而不是0x32(或僅為2)。
我已經在write命令上嘗試了各種變化。 我嘗試了chr()函數,但這需要將字符串轉換為int。
file_out.write(chr(int(file_contents)))
最終寫出了字符串的十六進制值,而不是我想要的。 一旦您具有包含af的值,它也會失敗。
我也試過
file_out.write('\x' + file_contents)
但是python解釋器不喜歡這樣。
您需要將原始字符串解釋為十六進制整數。 十六進制是以16為基數的表示法,因此在int()
調用中添加16
:
file_out.write(chr(int(file_contents, 16)))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.