【纯文本教程】大学专科的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(文件名,使用方式)

文件名是一个字符串,用英文双引号引起来。

“使用方式”有很多种,这里只说最常用的三种:

  1. 一是“rt”(只读),不解释——不存在的话,会导致打开失败;
  2. 二是“wt”只写打开,或者新建一个文本文件——文件不存在,默认新建一个空文件;
  3. 三是“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小节课。

 

posted on 2020-06-11 08:10  机器人DX3906  阅读(192)  评论(0)    收藏  举报

导航