当前位置:Gxlcms > 数据库问题 > 1-2、make_db_file.py

1-2、make_db_file.py

时间:2021-07-01 10:21:17 帮助过:20人阅读

#-*- coding: UTF-8 -*- 2 """ 3 用自定义的格式将内存数据库对象保存到文件中; 4 假定数据不使用‘endrec.’,‘enddb.‘和‘=》’; 5 假定数据库是字典的字典;警告:使用eval可能存在危险,它会将字符串当作代码执行; 6 也可以使用eval()一次创建一条字典记录; 7 对于print(key,file=dbfile),也可以使用dbfile.write(key + ‘\n‘); 8 """ 9 10 11 dbfilename = people-file 12 ENDDB = enddb. 13 ENDREC = endrec. 14 RECSEP = => 15 16 def storeDbase(db, dbfilename=dbfilename): 17 "将数据库格式化保存为普通文件" 18 dbfile = open(dbfilename, w) 19 for key in db: 20 print (key, file=dbfile) 21 for (name,value) in db[key].items(): 22 print(name + RECSEP + repr(value),file = dbfile) 23 print(ENDREC, file=dbfile) 24 print(ENDDB, file=dbfile) 25 dbfile.close() 26 27 def loadDbase(dbfilename = dbfilename): 28 "解析数据,重新构建数据库" 29 dbfile = open(dbfilename) 30 import sys 31 sys.stdin = dbfile 32 db = {} 33 key = input() 34 while key != ENDDB: 35 rec = {} 36 field = input() 37 while field != ENDREC: 38 name,value = field.split(RECSEP) 39 rec[name] = eval(value) 40 field = input() 41 db[key]= rec 42 key = input() 43 return db 44 45 if __name__ == __main__: 46 from initdata import db 47 storeDbase(db)

cmd中执行python 1-2、make_db_file.py后,目录下会多出来一个文件和文件夹

技术分享

然后,cmd中执行

python

>>>for line in open(‘people-file‘):

>>>  print(line,end=‘‘)

>>>

会将initdata中的数据打印出来。

1-2、make_db_file.py

标签:int   ges   rom   blog   turn   load   key   ems   文件中   

人气教程排行