- 主题:python 字节流 解析与写入
一个python程序与c程序进行数据通信
比如c程序发送过来一个字节流char[15],按字节顺序共表示1个int,一个str(7位)及一个float。
python端如何从中解析出这3个数据项,以及如何将任意三个int,str,float组成一个字节流发送出去。
--
FROM 101.80.114.*
用 ctypes 模块。
【 在 grainbuds (hello) 的大作中提到: 】
: 一个python程序与c程序进行数据通信
: 比如c程序发送过来一个字节流char[15],按字节顺序共表示1个int,一个str(7位)及一个float。
: python端如何从中解析出这3个数据项,以及如何将任意三个int,str,float组成一个字节流发送出去。
: ...................
--
FROM 112.47.122.*
struct.unpack('is7f')
【 在 grainbuds 的大作中提到: 】
: 一个python程序与c程序进行数据通信
: 比如c程序发送过来一个字节流char[15],按字节顺序共表示1个int,一个str(7位)及一个float。
: python端如何从中解析出这3个数据项,以及如何将任意三个int,str,float组成一个字节流发送出去。
--
FROM 124.126.141.*
首先应该是 i7sf,其次 i7sf 也不对
>>> struct.calcsize('i7sf')
16
>>> struct.calcsize('=i7sf')
15
需要注意避免自动对齐
【 在 maming (马鸣) 的大作中提到: 】
: struct.unpack('is7f')
--
FROM 221.217.55.*
protobuf就是干这个的
【 在 grainbuds 的大作中提到: 】
: 一个python程序与c程序进行数据通信
: 比如c程序发送过来一个字节流char[15],按字节顺序共表示1个int,一个str(7位)及一个float。
: python端如何从中解析出这3个数据项,以及如何将任意三个int,str,float组成一个字节流发送出去。
- 来自「最水木 for iPhone13,4」
--
FROM 112.96.179.*
protobuf 没法解析自定义的结构。只能解析 protobuf 已经定义好的。
不过现在一般不会自定义序列化结构了。或者用 msgpack 或者用 protobuf,不要求效率的话用 json
【 在 iwannabe (I wanna be) 的大作中提到: 】
: protobuf就是干这个的
: - 来自「最水木 for iPhone13,4」
--
FROM 110.81.12.*