简单的数据存储化脚本 //数据源 bob={'name':"Bob smith","age":43,'pay':30000} sue={'name':"Sue Jones","age":45,'pay':60000} tom=dict(name='Tom',age=48,pay=65000) #数据库 db={} db['bob']=bob db['sue']=sue db['tom']=tom if __name__=="__main__": for key in db: print(key,"=>",db[key]) #注意:这里数据字典 字典的形式有几种: first:bob={'name':"Bob smith","age":43,'pay':30000} second:tom=dict(name='Tom',age=48,pay=65000) third:db={} /n db['bob']=bob four time:dict(zip(name,value)) 字典的嵌套: first:bob={"name":{'first name':'Bob','last name':'Smith'},'job':[12,'stu']} second:bob['name']['first name'] bob['job'][1] bob['job'].append('janitor') 列表形式: 1.列表的初始化: 1).bob=['bob Smith',12,3000,'software'] 2).bob=[] /n bob.append('') 3).l = list((0, 1, 2, 3, 4, 5, 6, 7, 8, 9)) 4)[person[2] for person in people] 2.列表的嵌套 1).bob=[[21.35],'lihua',{'name':'lihua'}] 3.列表的函数和方法 函数: count(bob) max(l) min(l) list(seq) //元组转化为列表 方法: list.append()//添加元素 list.count()//求元素个素 list.extend()//列表末尾追加列表 list.index(obj)//从列表中找出某个值第一个匹配项的索引位置 list.pop(obj=list[-1])//移除列表中的一个元素(默认最后一个元素),并且返回该元素的值 list.remove(obj)//移除列表中某个值的第一个匹配项 list.reverse()//反向列表中元素 #格式化输入数据 dbfilename="people-file" ENDDB="enddb." ENDREC="endrec." RECSEP="=>" def storeDbase(db,dbfilename=dbfilename): "将数据库格式化保存在普通文件中" dbfile=open(dbfilename,'w') for key in db: print(key,file=dbfile) for(name,value)in db[key].items(): print(name+RECSEP+repr(value),file=dbfile) print(ENDREC,file=dbfile) dbfile.close() def loadDbase(dbfilename=dbfilename): "解析数据,重新构建数据库" dbfile=open(dbfilename) import sys sys.stdin=dbfile db={} key=input() while key!=ENDDB: rec={} filed=input() while filed !=ENDREC: name,value=filed.split(RECSEP) rec[name]=eval(value) filed=input() db[key]=rec key=input() return db if __name__=="__main__": from initdata import db storeDbase(db) #使用pickle模块 皮撑开了模块将内存中的python对象转化成序列化的字节流 from initdata import db import pickle dbfile=open('people_pickle','wb') pickle.dump(db,dbfile) dbfile.close() #使用shelve模块 自动的将对象pickle进和出键访问文件系统。 from initdata import bob,sue import shelve db=shelve.open('perple-shelve') db['bob']=bob db['sue']=sue db.close()
转载于:https://my.oschina.net/puzhiyuan/blog/830811