免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 10092 | 回复: 12
打印 上一主题 下一主题

python怎么构造一个结构体 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-11-26 20:52 |只看该作者 |倒序浏览
在c语言中需要构造一个struct,然后发出去

  1. struct aaa{
  2.      char   a;
  3.      int      b;
  4.      char* c;
  5. }
复制代码


在python中的做法是不是生产一个list
第一项 第二项 第三项都填好再发
有没有什么标准的做法模拟这个呢?

刚刚学python,有些通用的写法不太熟悉,请教一下

论坛徽章:
0
2 [报告]
发表于 2008-11-26 20:56 |只看该作者
用类就可以了。

论坛徽章:
0
3 [报告]
发表于 2008-11-26 21:04 |只看该作者
恩地址对其怎么做呢
在c里面可以
(char *)aaa, 然后通过aaa[]访问到每个字节
python里面怎么做到呢,感觉现在用python还是用c的思维在写程序是不是不太对?

论坛徽章:
0
4 [报告]
发表于 2008-11-26 21:19 |只看该作者
不好意思,我理解错了。以为你想在 python 中用结构。

python 有个模块,名字忘记了,可以写入读取 c 的结构。等知道的人告诉你吧。

另外,把指针发送出去可能是没有意义的。

论坛徽章:
0
5 [报告]
发表于 2008-11-26 21:59 |只看该作者
恩,我是想在接收端收到这个结构体后,用数组去解析这个

论坛徽章:
0
6 [报告]
发表于 2008-11-26 22:12 |只看该作者
对方发送过来的是 C 的裸结构吗? 没有经过 XDR 之类的编码?

python 读取 c 的结构可以用 struct 模块的 unpack

下面的连接供你参考:

http://www.python.org/doc/2.5.2/lib/module-struct.html

论坛徽章:
0
7 [报告]
发表于 2008-11-26 23:00 |只看该作者
只是存取的话可以用ctypes
from ctypes import *
class aaa(Structure):
        _fields_ = [("a", c_char),
                ("b", c_int),
                ("c", c_char_p)]
如果在网上发送可以用struct模块pack成字节流发送。

论坛徽章:
0
8 [报告]
发表于 2008-11-26 23:13 |只看该作者
谢谢各位!!!

论坛徽章:
0
9 [报告]
发表于 2008-11-27 16:50 |只看该作者
d= shelve.open("c:\\test.data")
a=[1,2,3]
b="string"
d["list"]=a   #将对象保存到d里面,类似字典的赋值
d["str"]=b
print d.keys()#打印d存储的对象列表,比较慢

#两个if的作用是一样的,都是判断是否有"str"这个key存在
if "str" in d:
    print "yes"
if d.has_key("str"):
    print "yes"
   
c=d["list"]
e=d["str"]
d.close()
print c,e


'''
shelve模块比pickle更有用,它提供了一个字典式的文件对象访问功能
'''
自己学习时写的一个demo。还有个cpickle块也完成类似的功能

论坛徽章:
0
10 [报告]
发表于 2008-11-27 17:21 |只看该作者
刚刚开始学习,路过学习经验
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP