案例内容
今天的挑战就是写一个“记事本”小程序。程序的功能分为三个部分:
1、把内容记录到文件。
2、显示记录的所有内容。
3、删除不再需要的内容。
正式的“记事本”程序实际上很复杂,在手机市场中搜索,能找到上千种app,对于用户体验等方面的设计和功能要求非常高,竞争激烈。我们在这里出于学习目的,并且主要集中在对于文件操作的学习,所以一切都比较简化。
在挑战的题目中,实际上已经把程序分了3部分功能,保存、显示和删除。这等于已经帮助我们进行了整体程序结构的设计。我们沿着这个思路,先使用“伪代码”的形式,把流程梳理清楚。
把内容记录到文件
1、获取要记录的内容(笔记内容),这里有一个待解决的问题,就是如何获取?
2、打开文件用于写出
3、保存笔记内容
4、关闭文件
显示文件内容
1、打开文件读取
2、逐行读取文件内容
3、显示
4、关闭文件
删除不需要的内容
1、首先的问题,如何定位不需要的内容?
2、在显示文件的过程中,对内容按照行进行编号
3、打开文件用于读取
4、全部读取
5、关闭文件
6、打开文件用于写出
7、循环遍历所有行,跳过要删除的行,写出
8、关闭文件
共性问题
三个小程序,都应当读、写同一个文件,否则无法互相配合
逻辑写的并不复杂,我们在下面源码的部分再更细致的讲解。这个“伪代码”提纲的功能,是让你在开始编写程序的时候,不至于不知道如何下手。
既然第4个共性的问题涉及到三个小程序,我们先从这个问题开始解决。方法非常简单,短到只有一行代码:
filename="daily.txt"
这一行代码只是定义了一个字符串变量filename,表示我们使用的记事文件名称。重点在于这行代码如何使用。
程序库
我们的课程一开始就大肆鼓吹Python的程序库如何丰富,我们今天就来自己定义一个程序库。上面这个仅仅一行代码的程序,我们保存为common.py,文件名不要输入错,因为我们后面还要用到。
此时common.py就称为一个程序库,虽然看上去很简陋,但它就是程序库。我们在这里很大程度出于演示程序库应用的目的。因为这样简单的功能,并非必须用程序库的方法解决。
现在我们有了一个程序库,使用程序库的方法有三种,我们使用源代码来展示:
这三种方法,各有不同的应用场景,可以根据自己的喜好选择。
现在已经可以动手写第一个小程序了:
第二个小程序,显示记事文件内容:
第三个小程序,删除记事文件中不要的行:
总结:
文件操作是一个软件的基本操作,用处非常多
文件有多种多样的格式,比如音乐、视频、照片、文本
程序文件是文本文件,也就是由文字、字符组成的文件,我们的样例“笔记本”程序所记录的文件也是文本文件。
文件的操作要小心,以免破坏掉有用的文件
扩展库(或:扩展程序库)是Python扩展功能的主要形式,Python有世界上各个公司、组织发布的海量扩展库资源,在所有的语言中是最多的,Python也因此被称为“胶水语言”,意思是把扩展库的功能粘合在一起
编程,重要的是由思路。大项目拆成小项目,逐层细化。在这个过程中,我们原来介绍了用函数化来管理这些分拆的每一个部分。今天又学到了程序库,用不同的程序库来分类一组相应的函数或者变量