最新消息:380元/半年,推荐全网最具性价比的一站式编程学习平台码丁实验室

python青少年编程第三季——13、图书管理系统之文件“数据库”版

Python 少儿编程 2611浏览 0评论
Python青少年编程第三季

友情提示:380元/半年,儿童学编程,就上码丁实验室

各位小伙伴大家好:

第二季的时候我们写过一个图书馆系统,当时的版本基本上实现了我们的目标。只是有一个缺憾,就是只要我们的程序一关闭,那么所有我们之前所输入的信息就都会消失。

 

有什么方法能让我们的数据在程序重启之后还能继续使用呢?

还记得上期我们分享的内容吗?

 

文件的操作(写入、读取)

 

那么我们就可以考虑,让我们的程序把所输入的图书信息写入文件中保存,然后在下次程序启动的时候再读取出来,以此来实现了一个类似数据库的功能。

 

要实现这个功能我们只需要再添加两个函数,一个是保存数据到文件中,一个是读取文件中的数据。

 

示例代码

python青少年编程第三季——13、图书管理系统之文件“数据库”版

 

第70—74行是保存图书信息的功能,需要注意的是第73行,我们在将图书信息写入文件的时候,需要先将列表数据转换成字符串。

 

接下来第76—84行是加载或者叫提取数据的功能,需要注意的是第81行,因为我们上面保存信息时将All列表转换成了字符串,所以当我们再次操作的时候需要将字符串还原为列表,来进行图书数据的维护。

 

这里我们使用了eval函数,有关这个函数的使用我们这里不展开,只需要知道这个函数可以将字符串还原为列表、字典、元组就可以了。

 

另外这里还用到了异常的处理,原因是当我们第一次运行系统的时候,同名文件夹中并没有图书信息文件。

 

但如果我们使用open以读取方式打开一个不存的文件会报错,提示文件不存在,从而导致系统崩溃。这和以写入方式打开文件稍微有点区别,因为如果是以写入方式打开一个不存在文件,系统会自动创建一个文件,而不是报错崩溃。

 

 

解决的方法当然不止一种,比如我们可以在系统开始运行的时候提前新建一个文件,但是这里我们用到的是异常处理。

 

有关异常的处理,以后再和大家分享。

 

下面我们来看一下系统运行的效果:

 

python青少年编程第三季——13、图书管理系统之文件“数据库”版

 

这是第一次打开系统,所以我们输入5显示图书列表会为空。

 

下面我们来新增一本图书:

 

python青少年编程第三季——13、图书管理系统之文件“数据库”版

 

当我们输入完图书信息,按6键保存之后,我们程序的同级目录下就会产生一个新文件。这个文件保存的内容就是我们输入的图书信息,文件名可以自定义如:.db.txt.lw都可以。

 

下面我们来验证一下:

 

python青少年编程第三季——13、图书管理系统之文件“数据库”版

 

这次我们直接按5,正常显示了上次保存的图书信息。

基本上实现了一个较为完整的图书信息管理系统,有兴趣的小伙伴可以在这个基础上进行修改,升级,发布之后交给学校图书管理员使用。

 

下面是整个系统的代码截图,有兴趣的小伙伴可以自己去敲敲看,如果有什么问题也欢迎和我交流。

 

python青少年编程第三季——13、图书管理系统之文件“数据库”版

python青少年编程第三季——13、图书管理系统之文件“数据库”版

python青少年编程第三季——13、图书管理系统之文件“数据库”版

python青少年编程第三季——13、图书管理系统之文件“数据库”版

 

图中缺少的行数是空格,没有代码,请放心使用。

 

本期图书管理系统就为大家介绍到这里,我们下期再会。

 

欢迎扫描下方二维码入群和我交流

python青少年编程第三季——13、图书管理系统之文件“数据库”版

 

 

转自公众号:
高维数学

您必须 登录 才能发表评论!