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

本文介绍了如何通过文件操作实现图书管理系统中数据的持久化,通过将图书信息保存到文件并读取,实现在程序关闭后数据的保留。关键步骤包括将数据转换为字符串写入文件和使用eval函数恢复数据。通过异常处理避免了初次运行时文件不存在的问题。
摘要由CSDN通过智能技术生成

各位小伙伴大家好:

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

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

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

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

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

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

示例代码:

7-1576141879.jpeg

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

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

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

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

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

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

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

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

6-1576141879.jpeg

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

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

0-1576141880.jpeg

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

下面我们来验证一下:

8-1576141880.jpeg

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

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

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

0-15761418801.jpeg

1-1576141881.jpeg

10-1576141881.jpeg

2-1576141881.jpeg

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

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

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

4-1576141882.jpeg

转自公众号:

高维数学

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值