Python 如何在.*scm文件中读取字节并将其转换为整数

Python 如何在.*scm文件中读取字节并将其转换为整数,python,binary,Python,Binary,我正在尝试读取与“面网格”和“纹理网格”信息相关的数据 以下是对数据集的解释,下一个灰色框表示我使用Sublime文本编辑器打开此*.scm文件时的外观 我只是猜测每行包含4个字节(4*8位),但只要我知道位代表0或1,但这里我们有像bc06,其中b,c,6不是二进制的 看起来我不知道如何表示数据的基本知识 而且,我也不知道什么是小endianess 我应该从哪里开始 我知道python,我能很好地处理它,但它只是一种自我教育,从未以常规方式学习CS 提前感谢你的帮助 形状和纹理模型(*.scm

我正在尝试读取与“面网格”和“纹理网格”信息相关的数据

以下是对数据集的解释,下一个灰色框表示我使用Sublime文本编辑器打开此
*.scm
文件时的外观

我只是猜测每行包含4个字节(4*8位),但只要我知道位代表0或1,但这里我们有像
bc06
,其中
b,c,6
不是二进制的

看起来我不知道如何表示数据的基本知识

而且,我也不知道什么是小endianess

我应该从哪里开始

我知道python,我能很好地处理它,但它只是一种自我教育,从未以常规方式学习CS

提前感谢你的帮助

形状和纹理模型(*.scm)

形状模型描述顶点位置的统计变化,即平均位置周围的x、y和z坐标的变化。同样,纹理模型描述顶点颜色(红色、绿色和蓝色)的变化。 为此,将面形状和纹理矢量化。形状向量按顺序描述所有N个顶点的x、y和z坐标:[x1、y1、z1、…、xN、yN、zN]。纹理向量如下:[r1,g1,b1,…,rN,gN,bN]。 *.scm文件的布局如下(小尾端字节顺序)。请注意,无符号int是4字节,double是8字节

  • unsigned int:顶点数:N
  • unsigned int:三角形的数量:M
  • 3M无符号整数:三角形作为顶点索引的三元组。4.形状PCA模型: (a) unsigned int:组件数:S (b) 无符号整数:基向量的长度:D=3N (c) SD Double:主成分矩阵,按顺序为D向量的S序列。每个向量都采用上面定义的格式。 (d) 无符号整数:基向量的长度,同样是(d)。 (e) D doubles:上述格式中的平均形状向量。 (f) unsigned int:特征值的个数(应该是S)。 1. (g) S doubles:与主成分顺序匹配的特征值

  • +附加问题:为什么在十六进制之后每行都有0000?

    @IgnacioVazquez Abrams当我在python中使用unpack()时,我应该使用哪种格式?我已经完成了以下操作:from struct import*//scm=open(“/Users/zachary/Downloads/sfm\u shape\u 1724.scm”)//unpack(scm)返回需要fmt表示的错误。
        bc06 0000 280d 0000 5801 0000 5a01 0000
        4d03 0000 5801 0000 4d03 0000 5901 0000
        5c01 0000 5901 0000 4d03 0000 5c01 0000
        4d03 0000 5a01 0000 f902 0000 fa02 0000
        4e03 0000 f902 0000 4e03 0000 fb02 0000
        fd02 0000 fb02 0000 4e03 0000 fd02 0000
        4e03 0000 fa02 0000 5b01 0000 6101 0000
        4f03 0000 5b01 0000 4f03 0000 1801 0000
        1901 0000 1801 0000 4f03 0000 1901 0000
        4f03 0000 6101 0000 fc02 0000 c202 0000
        5003 0000 fc02 0000 5003 0000 0203 0000
        c302 0000 0203 0000 5003 0000 c302 0000
        5003 0000 c202 0000 5901 0000 5501 0000
        5103 0000 5901 0000 5103 0000 5801 0000
        5d01 0000 5801 0000 5103 0000 5d01 0000
        5103 0000 5501 0000 fa02 0000 f902 0000
        5203 0000 fa02 0000 5203 0000 f602 0000
        fe02 0000 f602 0000 5203 0000 fe02 0000
        5203 0000 f902 0000 5501 0000 5901 0000
        5303 0000 5501 0000 5303 0000 5601 0000
        5b01 0000 5601 0000 5303 0000 5b01 0000
        5303 0000 5901 0000 f602 0000 f702 0000
        5403 0000 f602 0000 5403 0000 fa02 0000
        fc02 0000 fa02 0000 5403 0000 fc02 0000