Python标准库shelve也提供了二进制文件操作的功能,可以像字典赋值一样来写入二进制文件,也可以像字典一样读取二进制文件,有点类似于NoSQL数据库MongoDB. import shelve fp = shelve.open('shelve_test.dat') #创建或打开二进制文件 zhangsan = {'age':38,'sex':'Male','address':'SDIBT'} fp['zhangsan'] = zhangsan #往文件里写入内容 lisi = {'} fp…
import shelve #导入shelve模块 fp=shelve.open('shelve_test.dat') #创建或打开二进制文件 zhangsan={'age':38,'sex':'Male','adress':'SDIBT'} fp['zhangsan']=zhangsan #写入文件内容 lisi={'} fp['lisi']=lisi #写入文件内容 fp.close() #关闭文件 fp=shelve.open('shelve_test.dat') print(fp['zh…
''' 使用struct模块写入二进制文件 ''' import struct n=130000000 x=96.45 b=True s='a1@中国' sn=struct.pack('if?',n,x,b) #序列化,i表示整数,f表示实数,?表示逻辑值 f=open('sample_struct.dat','wb') f.write(sn) f.write(s.encode()) #字符串需要编码为字节串再写入文件 f.close() ''' 使用struct模块读取二进制文件的内容 '''…
import marshal #导入模块 x1=30 #待序列化的对象 x2=5.0 x3=[1,2,3] x4=(4,5,6) x5={'a':1,'b':2,'c':3} x6={7,8,9} x=[eval('x'+str(i)) for i in range(1,7)] #把需要序列化的对象放在一个列表中 print(x) # [30, 5.0, [1, 2, 3], (4, 5, 6), {'c': 3, 'b': 2, 'a': 1}, {8, 9, 7}] with open('t…
import pickle b=7 i=13000000 fa=99.056 s='中国人民 123abc' lst=[[1,2,3],[4,5,6],[7,8,9]] tu=(-5,10,8) coll={4,5,6} dic={'a':'apple','b':'banana','g':'grape','o':'orange'} f=open('sample_pickle.dat','wb') #以写模式打开二进制文件 try: pickle.dump(b,f) #对象个数 pickle.du…
Python 标准库 marshal 也可以进行对象的序列化和反序列化,下面的代码进行了简单演示. import marshal x1 = 30 x2 = 5.0 x3 = [1,2,3] x4 = (4,5,6) x5 = {'a':1,'b':2,'c':3} x6 = {7,8,9} x = [eval('x'+str(i)) for i in range(1,7)] #把要序列化的对象放到一个列表中 print(x) #[30, 5.0, [1, 2, 3], (4, 5, 6), {'…
时间模块 time datatime time.clock(2.7) time.process_time(3.3) 测量处理器运算时间,不包括sleep时间 time.altzone 返回与UTC时间的时间差,以秒计算 print(time.altzone)      输出: -32400 time.asctime() 将struct时间格式转为可读的时间格式"Fri Aug 19 11:14:16 2016" print(time.asctime()) 输出: Mon Jan  2…
一.json & pickle & shelve 模块 json,用于字符串 和 python数据类型间进行转换pickle,用于python特有的类型 和 python的数据类型间进行转换Json模块提供了四个功能:dumps.dump.loads.loadpickle模块提供了四个功能:dumps.dump.loads.load json模块:下面通过一些示例来学习:首先我们来看json的dumps和loads方法 s1={"k1":"v1"}…
shelve模块讲解 一.概述 之前我们说不管是json也好,还是pickle也好,在python3中只能dump一次和load一次,有什么方法可以向dump多少次就dump多少次,并且load不会出错,也不会出问题,现在开始介绍shelve模块,这个shelve模块是一个简单的key,value将内存数据通过文件持久化的模块,可以持久化任何pickle可支持的python数据格式 简单来说,使用者可以将一个列表.字典.或者用户自定义的类实例保存到shelve中,下次需要用的时候直接取出来,就是…
一.定义 Shelve是对象持久化保存方法,将对象保存到文件里面,缺省(即默认)的数据存储文件是二进制的. 二.用途 可以作为一个简单的数据存储方案. 三.用法 使用时,只需要使用open函数获取一个shelf对象,然后对数据进行增删改查操作,在完成工作.并且将内存存储到磁盘中,最后调用close函数变回将数据写入文件. 四.关联模块Anydbm 相同点:1.anydbm, shelve 都是对象持久化保存方法,将对象保存到文件里面,缺省的数据存储文件是二进制的.这两个模块允许我们将一个磁盘上的…