抱歉,如果这是一个重复的问题,我是相当新的python和不完全知道的术语,所以很难寻找解决方案。你知道吗
我正在尝试编写一个代码,以特定的整数格式输出二进制文件,即8位的部分,后跟32位,等等。更具体地说,以STL格式;可以在这里阅读大纲:wikipedia。你知道吗
我试过做一个简单的f.write(struct.pack(DATA))
来生成一个输出文件,但是最终的结果是一个损坏的文件。STL确实有一个ASCII版本;我正在使用它。因此,我假设二进制文件生成有问题。我想使用二进制文件来显著减小文件大小。你知道吗
我假设输出代码如下*:
import struct
f = open('cool_filename.stl', 'wb')
f.write(struct.pack(head, format=UINT8))
f.write(struct.pack(num, format=UINT32))
for i in range(0, num):
f.write(struct.pack(normal, format=REAL32))
f.write(struct.pack(vert1, format=REAL32))
f.write(struct.pack(vert2, format=REAL32))
f.write(struct.pack(vert3, format=REAL32))
f.write(struct.pack(attr, format=UINT16))
f.close()
有用的链接:
我相信答案可以在上面的后一个链接中找到,但我真的不知道如何使用它。接下来,我尝试使用struct.pack(I32, DATA)
来格式化无符号32字节的部分,其余部分使用类似的代码,但没有效果。你知道吗
*我应该注意的是,这不会运行。这里的代码显示格式更改
struct.pack
的第一个参数应该是一个字符串,I
格式规范意味着32位(文档中表中的size=4表示4字节,即4*8=32位),因此要以小尾数字节顺序写入单个32位无符号整数(比如4711),您可以执行struct.pack('<I', 4711)
。你知道吗相关问题 更多 >
编程相关推荐