【纯文本教程】大学专科的Python基础开发课?p=34
“Python基础开发”课程_课堂笔记(HTML版_034)
Class notes of "Python basic development",this webPage is thirty-fourth page.
本页面没有“代码demo索引”。
第七章 Python文件操作
文件是用来存储程序或者数据的,文本文件保存文本数据,是一组相关数据的有序集合,这个数据集的名称,被称为文件名。
常见的有“源程序文件”(源代码)、目标文件、“可执行文件”(exe)、“库文件”(头文件)等。
文件通常是驻留在磁盘等外部介质上,在使用时,才调入内存中。
7.0 文件操作概述
我们在这个小节是要掌握文本文件的基本操作,能把数据写入文件,并读出来。
从文件编码方式来看,文件可分为“ASCII码文件”和“二进制文件”。
“ASCII码文件”是文本文件(默认的文件后缀名是“txt”),可以用“Windows记事本”打开和编辑,也可以使用DOS命令“TYPE”显示文件内容。
其原理是每个字符对应一个ASCII码,每一个ASCII码二进制数都可以被解释成一个可见字符。
如果文本文件内容里面,包含了简体中文这种非ASCII码字符,就需要注意编码方式了——“ANSI”的每个汉字2字节,“UTF-8”的每个汉字3字节。
文件在进行读写操作前要先打开,使用结束后要关闭:
- 打开文件,是建立文件的各种有关信息,并使文件指针指向该文件,以便进行其它操作;
- 关闭文件,是断开指针与文件之间的联系,禁止再对该文件进行操作,同时释放文件占用的资源。
7.0.1 文件的打开
打开文本文件,使用Python内置函数——“open()”,一般格式是:
文本对象 = open(文件名,使用方式)
文件名是一个字符串,用英文双引号引起来。
“使用方式”有很多种,这里只说最常用的三种:
- 一是“rt”(只读),不解释——不存在的话,会导致打开失败;
- 二是“wt”只写打开,或者新建一个文本文件——文件不存在,默认新建一个空文件;
- 三是“at”,追加打开一个文本文件,数据默认添加到末尾——文件不存在,默认新建一个空文件。(日志文件的既视感?)
7.0.2 文件的关闭
关闭文本文件,可以释放文件资源,做法是:
文件对象.close()
这个“文件对象”就是前面用“open()”函数打开后,返回的文件对象。
7.1 文件操作的异常处理
上面用“rt”导致的打开失败,就会导致直接报错,就像这样:
f = open("D:/code/demo.txt",rt)
s = f.read()
f.close()
运行程序,就会……
>>>
====================== RESTART: D:\code\Python2020_demo.py =====================
Traceback (most recent call last):
File "D:\code\Python2020_demo.py", line 1, in <module>
f = open("D:/code/demo.txt",rt)
NameError: name 'rt' is not defined
>>>
(未定义“rt”)
嗯,这个“rt”是函数参数,要加引号,就像这样:
f = open("D:/code/demo.txt","rt")
s = f.read()
f.close()
运行结果,就是:
>>>
====================== RESTART: D:\code\Python2020_demo.py =====================
Traceback (most recent call last):
File "D:\code\Python2020_demo.py", line 1, in <module>
f = open("D:/code/demo.txt","rt")
FileNotFoundError: [Error 2] No such file or directory: 'D:/code/demo.txt'
>>>
(未找到指定的文件)
这种情况,会直接中断程序的运行,因此需要提前用“try…except”语句处理。
try:
f = open("D:/code/demo.txt","rt")
s = f.read()
f.close()
except Exception as err:
print(err)
这样的话,就不会直接中断程序的运行了(当然,这里代码量少,还不明显)
>>>
====================== RESTART: D:\code\Python2020_demo.py =====================
[Errno 2] No such file or directory: 'D:/code/demo.txt'
>>>
7.2 文本文件的读写操作
7.2.1 “write()”函数
文件对象.write(s)
这个很好理解——“write()”函数的功能,就是把“待写入的字符串”s写入指定文件中。
第一,如果被写入的文件,原有内容不再需要了,可以使用“wt”方式,清空内容,重新写入内容;
第二,如果被写入的文件,原有内容仍然需要,请使用“at”方式,自动移动指针,以便保留原有内容;
举个例子——将指定字符串放入指定文件中:
try:
f = open("D:/python_code/demo.txt","wt")
f.write("20200519")
f.close()
except Exception as err:
print(err)
如果指定文件不存在的话,这个操作就是新建一个txt文件,文件内容为“20200519”,但是,如果立即运行以下代码:
try:
f = open("D:/python_code/demo.txt","wt")
f.write("11:38")
f.close()
except Exception as err:
print(err)
文件内容会被修改为“11:38”,因此,稳妥的做法是用“at”模式:
try:
f = open("D:/python_code/demo.txt","at")
f.write("\ntimestamp=1589859600")#“\n”是换行符
f.close()
except Exception as err:
print(err)
不会删除原有的内容,当然,如果存在简体中文等非ASCII文本,在使用某些(默认使用“UTF-8”的)代码编辑器打开文件时,会提示要切换为“gbk”编码。
第34堂课,内容为开始接触Python文件操作和异常处理。
本页面(?p=34)的实际上课时间为2020年5月19日第4小节课。
浙公网安备 33010602011771号