内容正文:
Python少儿编程
第八章 永久存储的文件
单击此处编辑母版标题样式
单击此处编辑母版文本样式
第二级
第三级
第四级
第五级
目录
1.1
打开和关闭文件
1.2
读写文件
1.3
定位文件
1.4
高大上的文件系统
单击此处编辑母版标题样式
单击此处编辑母版文本样式
第二级
第三级
第四级
第五级
PART 01
打开和关闭文件
单击此处编辑母版标题样式
单击此处编辑母版文本样式
第二级
第三级
第四级
第五级
打开文件
1.1
Python使用内置函数open()即可按照指定模式打开指定文件,并创建文件对象,其语法格式如下。
open(filename[, mode])
其中,filename表示文件名称;mode表示文件的读写模式,缺省时为只读模式。该函数返回一个文件对象。例如,以只读模式打开一个名为“1.txt”的文件,可以用下面代码实现。
file = open('1.txt')
其中,file为打开的文件对象,通过它可以对文件进行读写操作。
如果想要写入文件,就需要在打开文件时指明文件的打开模式。Python中文件的打开模式有多种,具体表示方式如表8-1所示。
单击此处编辑母版标题样式
单击此处编辑母版文本样式
第二级
第三级
第四级
第五级
打开文件
1.1
表8-1 文件打开模式
单击此处编辑母版标题样式
单击此处编辑母版文本样式
第二级
第三级
第四级
第五级
打开文件
1.1
(1)以只读模式“r”打开文件时,该文件必须已经存在,否则抛出异常,且只能进行读取操作,打开时文件位置指针在文件的开头。
(2)以只写模式“w”打开文件时,如文件不存在,则以指定的文件名新建文件。若打开的文件已经存在,则新数据覆盖原文件中的已有数据,且只能进行写操作。
(3)以追加模式“a”打开文件时,如果文件已存在,打开时文件位置指针在文件的末尾,也就是说,新数据将写入到已有数据之后,如果文件不存在,则新建文件进行写入。
(4)“r+”“w+”“a+”模式都是既可读也可写,只是“r+”与“r”一样,文件必须已经存在。
(5)打开模式带上“b”表示以二进制文件格式进行操作。
单击此处编辑母版标题样式
单击此处编辑母版文本样式
第二级
第三级
第四级
第五级
关闭文件
1.2
在Python中,虽然文件会在程序退出后自动关闭,但考虑到数据的安全性,每次使用完文件后,都应使用close()方法关闭文件,其语法格式如下。
file.close()
其中,file为文件对象。例如,以只写模式打开一个名为“test.txt”的文件,然后关闭文件,可以用下面代码实现。
file = open('test.txt', 'w') #以只写方式打开名为“test.txt”的文件
file.close() #关闭文件
单击此处编辑母版标题样式
单击此处编辑母版文本样式
第二级
第三级
第四级
第五级
with语句
1.3
Python中的with语句(上下文管理语句)用于对资源进行访问,保证不管处理过程中是否发生错误或异常,都会调用__exit__()方法,执行规定的清理操作,释放访问的资源。它常用于文件操作、数据库连接、网络通信连接、多线程与多进程同步时的锁对象管理等场合,其语法格式如下。
with context_expression [as target(s)]:
with_body #执行代码
其中,context_expression是一个需要执行的表达式,返回一个对象;target(s)用于保存context_expression返回的对象,可以是一个或多个。例如,读写文件时,with语句的用法如下。
with open(filename[, mode]) as file:
with_body #通过文件对象读写文件的语句
单击此处编辑母版标题样式
单击此处编辑母版文本样式
第二级
第三级
第四级
第五级
PART 02
读写文件
单击此处编辑母版标题样式
单击此处编辑母版文本样式
第二级
第三级
第四级
第五级
写入文件
2.1
write()方法用于向文件中写入指定字符串,其语法格式如下。
file.write(str)
其中,file表示文件对象,str表示要写入文件的字符串。
【例8-1】 生日备忘录。
【问题分析】 首先,以只写模式打开文件(当文件不存在时会创建文件);然后,向文件中写入数据,这里需要注意的是write()方法不会自动在字符串的末尾添加换行符,因此,当输入多行时,需要在write()语句中包含换行符;最后,关闭文件。
1. write()方法
单击此处编辑母版标题样式
单击此处编辑母版文本样式
第二级
第三级
第四级
第五级
写入文件
2.1
【参考代码】
#以只写模式打开名为“bi