[英]Python3 editing hex string
我正在嘗試在另一個文件的標題中寫入文件的十六進制大小。 當我將長度轉換為十六進制時,得到b'\\x00\\x00\\x00\\x04'
因此它將"00000004"
b'\\x00\\x00\\x00\\x04'
寫入文件。
該文件的長度雖然以2個字節的間隔存儲,所以我需要它將字符串格式化為b'\\x00\\x04'
。 最簡單的方法是什么?
import mmap
def compact_bytes(values):
return (values[0] << 4)| values[2]
我試過了,但我知道這是不正確的,也不是正確的方法。
您正在將數字轉換為字節,而不是十六進制。 使用struct
模塊執行此操作:
struct.pack('>H', values)
這將產生一個無符號的短2字節(大字節序)。 對於將產生\\x00\\x04
的長度4
:
>>> import struct
>>> struct.pack('>H', 4)
b'\x00\x04'
假設整數是一個大端無符號短整數,請使用帶有大端標志的struct.pack
。
struct.pack('>H', values)
在此格式的字符串中, >
是大端標志, H
是無符號的短整數。
>>> import struct
>>> struct.pack('>H', 4)
b'\x00\x04'
您可以在此處找到所有struct
格式字符。
>>> 4 .to_bytes(2, 'big')
b'\x00\x04'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.