簡體   English   中英

Python-將兩個字節的字符串作為單字節十六進制字符寫入二進制文件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM