import struct
#32位bin大小端转换脚本
def swap_endian_32bit(value: int) -> int:
"""
交换 32 位整数的大小端格式
:param value: 32 位整数
:return: 交换大小端后的整数
"""
return struct.unpack("<I", struct.pack(">I", value))[0]
def process_file(input_filename: str, output_filename: str):
"""
读取文件中的 32 位整数并转换大小端,并输出到新的文件
:param input_filename: 输入文件名
:param output_filename: 输出文件名
"""
with open(input_filename, "rb") as f:
data = f.read()
# 计算有效长度(4 的倍数)
valid_length = len(data) - (len(data) % 4)
if valid_length != len(data):
print(f"警告: 文件大小 {len(data)} 不是 4 的倍数,截断为 {valid_length} 字节")
# 仅解析有效部分
values = struct.unpack(f"{valid_length // 4}I", data[:valid_length])
swapped_values = [swap_endian_32bit(v) for v in values]
with open(output_filename, "wb") as out_f:
out_f.write(struct.pack(f"{len(swapped_values)}I", *swapped_values))
print(f"转换完成,结果已保存到 {output_filename}")
if __name__ == "__main__":
import sys
if len(sys.argv) != 3:
print("用法: python script.py <输入文件> <输出文件>")
sys.exit(1)
process_file(sys.argv[1], sys.argv[2])
32位大小端转换
部署运行你感兴趣的模型镜像
您可能感兴趣的与本文相关的镜像
Python3.8
Conda
Python
Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本
2916

被折叠的 条评论
为什么被折叠?



