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 + ‘\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中的数据打印出来。

时间: 2024-08-28 14:49:15

1-2、make_db_file.py的相关文章

WSGI、flup、fastcgi、web.py的关系

WSGI.flup.fastcgi.web.py的关系 Apache/lighttpd: 相当于一个request proxy,根据配置,把不同的请求转发给不同的server处理,例如静态的文件请求自己处理,这个时候它就像一个web server,对于fastcgi/python这样的请求转发给flup这样的Server/Gateway进行处理 flup: 一个用python写的web server,也就是cgi中所谓的Server/Gateway,它负责接受apache/lighttpd转发的

高级工具gprof、gprof2dot.py、dot

可以研究程序性能.函数调用堆栈等,而且能用图标查看. linux环境下 C++性能测试工具 gprof + kprof + gprof2dot - 阁子 - 博客园 gprof.gprof2dot.py.dot使用方法简介 - Andy.Wang的博客 - 博客频道 - CSDN.NET 完.

Django、Tornado、Web.py比较与选用

本人目前并没使用Tornado与Web.py的经验,也没有做过专门的研究.本文的内容主要是对网上主流的做了归纳与综合. 开发blog django省力,定义models, 写个前台基本就搞定了. tornado灵活, 不用异步特性单纯作个轻框架写法和webpy也差不多. webpy作者都走了那么久了, 这类单人主导的项目没经历正常过度,等一些现有应用迁出完毕,少量维护者出离, 项目本身就正式宣告死亡了, 完全不该考虑了. Django是走大而全的方向,它最出名的是其全自动化的管理后台:只需要使用

如何在Windows下用cpu模式跑通py-faster-rcnn 的demo.py

关键字:Windows.cpu模式.Python.faster-rcnn.demo.py 声明:本篇blog暂时未经二次实践验证,主要以本人第一次配置过程的经验写成.计划在7月底回家去电脑城借台机子试试验证步骤的正确性,本blog将根据实际遇到的问题持续更新.另外blog中除提到的下载链接外我还会给出网盘链接方便下载,包括我的整个工程的网盘链接.如果有些报错解决不了可直接拿本人的相关文件替换,本篇blog具有较高的参考性. 本人微软版caffe工程     下载链接:http://pan.bai

webService接口的py文件打包成exe

(一)webService接口的py文件打包成exe,在python3.5版本.pyInstaller3.2版本.pywin32-219.win-amd64-py3.5版本打包时报错,原因可能是pyinstaller.py文件使用python2语法写的代码. (二)webService接口的py文件打包成exe,在python2.7版本.pyInstaller2.0版本.pywin32-219.win32-py2.7版本打包成功,并成功运行. 打包步骤: 1.安装pywin32 2.解压缩pyI

unittest测试驱动之HTMLTestRunner.py

原文出自:http://www.wtoutiao.com/p/zedDKR.html 对于自动化来说,测试报告是必须的,在敏捷化的团队中,团队中的成员需要自动化这边提供自动化的测试报告,来判断系统的整体质量以及下一步的测试策略.单元测试库生成测试输出到控制台的窗口上,但是这样的结果看起来比较费力,很显然,控制台日志的输出的信息并不是个好的注意,那么好的注意应该是生成html页面的测试报告,这样的报告看起来更加清晰,庆幸的是unittest的单元测试库扩展的HTMLTestRunner.py,可以

Python的__init__.py用法

python中包的引入,对于大型项目中都会使用到这个功能,把实现不同功能的python文件放在一起,组成不同lib库,然后在其他地方调用. 1.__init__.py基本介绍 首先看下面这个例子 例子1 #!/usr/bin/env python2.7 #-*- coding:utf-8 -*- from package.src.test import A a = A(2) a.aPrint() 从package包中的src子包中test.py文件中,引入A类,如何实现这一点?? 需要构建如下的

Python&int&method&String切片、索引,列表、元祖、字典

一.int的两个方法 a. __add__() bit_length() number_one = 7number_two = 5print(number_one + number_two)print(number_one.__add__(number_two))print(number_one.bit_length())print(number_two.bit_length()) 效果: 121233 二.String索引和切片 name = 'Jane'print(name[0])print

python的构建工具——setup.py文件

一.构建工具setup.py的应用场景 在安装python的相关模块和库时,我们一般使用"pip install  模块名"或者"python setup.py install",前者是在线安装,会安装该包的相关依赖包:后者是下载源码包然后在本地安装,不会安装该包的相关依赖包.所以在安装普通的python包时,利用pip工具相当简单.但是在如下场景下,使用python setup.py install会更适合需求: 在编写相关系统时,python 如何实现连同依赖包