我想讀取一個二進制文件,獲取四個字節的內容四個字節,並對這些數據包執行整型操作。Python3讀取一個二進制文件,一次4個字節,異或它與一個4個字節的長鍵
使用一個虛擬的二進制文件,打開這樣:
with open('MEM_10001000_0000B000.mem', 'br') as f:
for byte in f.read():
print (hex(byte))
我想用一個4字節長的關鍵,例如進行加密,0x9485A347
。
是否有一種簡單的方法,我可以一次讀取4個字節的文件,並將它們作爲int或我需要使用計數器將它們放入臨時結果中?
我最初的想法是這樣的:
current_tmp = []
for byte in data:
current_tmp.append(int(byte))
if (len(current_tmp) == 4):
print (current_tmp)
# but current_tmp is an array not a single int
current_tmp = []
在我的例子,而不必[132, 4, 240, 215]
我寧願有0x8404f0d7
該OP希望'[132,4,240,215]'轉換爲'0x8404f0d7',即您需要big-endian。 –
如果文件大小不是4的倍數,還要小心最後一個字節...... –
謝謝 - 修正了這兩個問題 – jsbueno