抱歉,如果这是一个重复的问题,我对 python 还很陌生,并不完全了解命名法,因此很难寻找解决方案。
我正在尝试编写以特定整数格式输出二进制文件的代码,即 8 位的部分,然后是 32 位等。更具体地说,以 STL 格式;可以在此处阅读大纲:维基百科。
我尝试过简单f.write(struct.pack(DATA))
地生成输出文件,但最终结果是文件损坏。STL 确实有 ASCII 版本。我有工作。因此我认为二进制文件生成有问题。我想使用 Binary 来显着减小文件大小。
我假设输出代码看起来像这样*:
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)
to 格式化无符号的 32 字节部分,并为其余部分使用类似的代码,但它不起作用。
*我应该注意这不会运行。此处显示格式更改的代码