import pickle
pickle是用来把python原生的对象存在硬盘里
>>> print(D)
{'cisco': 1, 'python': 2, 'ericsson': 3}
>>> import pickle
>>> F=open('pickle_test.pkl', 'wb')
>>> pickle.dump(D,F)
>>> F.close()
>>> F=open('pickle_test.pkl','rb')
>>> E=pickle.load(F)
>>> E
{'cisco': 1, 'python': 2, 'ericsson': 3}
>>>
用pickle.dump()把字典D这个python对象存储进pickle_test.pkl,该pkl文件是存在硬盘上的
后面用pickle.load()再把硬盘上的文件打开
pickle这种方式,只能用来存储python的对象,C语言的对象看不了,可以用XML或者JSON来存储数据,其他语言也是可以看的
####################################################
struck可以用来构造tcp头部
参考博客:
https://www.cnblogs.com/gala/archive/2011/09/22/2184801.html
>: 网络字节序:左侧是高位,右侧是低位
<: 主机字节序:左侧是低位,右侧是高位
i: 整数,占4个字节,目的是把7放在4个字节里,即序列号要是7 - i对应的是7
s: 字符,4s即四个字母,一个字母占一个字节 - 对应的是b'spam'
h: 整数,两个字节,对应的是8,网络编程里可能对应的是端口号
b'spam': 二进制的spam
写入了一共10个字节:4+4+2
>>> F=open('data.bin','wb')
>>> import struct
>>> data=struct.pack('>i4sh',7,b'spam',8)
>>> data
b'\x00\x00\x00\x07spam\x00\x08'
>>> F.write(data)
10
>>> F.close()
>>> F=open('data.bin','rb')
>>> data=F.read()
>>> data
b'\x00\x00\x00\x07spam\x00\x08'
>>> values = struct.unpack('>i4sh',data)
>>> values
(7, b'spam', 8)
>>>
这种方法比较原始,比较麻烦,有其他更高级的方法来构造TCP数据包