2024-10-01 11:35:03 发布
网友
这样说一个结构:
typedef struct testVertex_s { char *vert_name; //for test only... float x; float y; float z; }testvertex_t;
如何使用python将其写入二进制文件?我想用c中的fread来读
为什么一定是二进制的?文本是琐碎的,与之交互要简单得多。在
如果您确实需要二进制,请使用struct模块。确保定义了你的endianness,并分别读取C中的每个字段,do而不是尝试在C结构中执行一个fread()。在
fread()
你可以这样包装:
import struct out = open("myvertex.bin", "wb") string = "hello" fmt = "<%usfff" % (1 + len(string)) out.write(struct.pack(fmt, string, 3.14, 47.11, 17))
这会将字符串写入一个以0结尾的纯字符串,后面紧跟浮点数。从上面得到的数据是"hello\x00\xc3\xf5H@\xa4p<B\x00\x00\x88A"(表示为Python字符串文本)。在
"hello\x00\xc3\xf5H@\xa4p<B\x00\x00\x88A"
对于这种情况,您需要动态地分配字符串,这一点很明显。在
为什么一定是二进制的?文本是琐碎的,与之交互要简单得多。在
如果您确实需要二进制,请使用struct模块。确保定义了你的endianness,并分别读取C中的每个字段,do而不是尝试在C结构中执行一个
fread()
。在你可以这样包装:
这会将字符串写入一个以0结尾的纯字符串,后面紧跟浮点数。从上面得到的数据是
"hello\x00\xc3\xf5H@\xa4p<B\x00\x00\x88A"
(表示为Python字符串文本)。在对于这种情况,您需要动态地分配字符串,这一点很明显。在
相关问题 更多 >
编程相关推荐