• 1-2、make_db_file.py


     1 #-*- coding: UTF-8 -*-   
     2 """
     3 用自定义的格式将内存数据库对象保存到文件中;
     4 假定数据不使用‘endrec.’,'enddb.'和‘=》’;
     5 假定数据库是字典的字典;警告:使用eval可能存在危险,它会将字符串当作代码执行;
     6 也可以使用eval()一次创建一条字典记录;
     7 对于print(key,file=dbfile),也可以使用dbfile.write(key + '
    ');
     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中的数据打印出来。

  • 相关阅读:
    JavaScript使用技巧精萃
    小谈js事件
    更深入地了解H1N1型流感病毒
    Oracle的一些常用操作
    JS刷新页面
    asp.net Excel导入&导出(转)
    [转]我的敏捷开发实践
    汉字转全拼,简拼组件
    深度复制
    无法删除注册表健值
  • 原文地址:https://www.cnblogs.com/wuzhenyang/p/6676024.html
Copyright © 2020-2023  润新知