1. 认识文件
文件是存储在辅助存储器/磁盘上的字节序列,文件主要有两种类型,文本文件和二进制文件。在Python中,文本文件的存储是以字符为单位的,Python 3.x中文本文件采用的是Unicode编码,在每个文件的结尾通常还有一个结束标志EOF,在读取文件时,可以以此判断文件是否结束。
最直观的体验是,一个文本文件我们可以通过记事本之类的软件打开,而二进制文件,比如一张照片,一般需要相应的图片软件才能打开。
2. 打开文件
对于一个文件的操作主要包括三个步骤,1)打开要操作的文件,获得一个文件对象(file object);2)通过文件对象从文件中读取或/和写入数据;3)关闭文件。
Python的内置函数open( )用于打开文件获得一个文件对象,最常用的参数有两个:要打开的文件,以及以什么样的读写模式打开。语法格式如下:
stream = open(file_name,mode)
file_name:要打开的文件名;
mode:使用文件的方式。常见的有:
r-以只读方式(read)打开文件;如果省略时,默认值为'r';
w-以写(write)数据方式打开文件,如果同名文件已经存在,则会被覆盖;
a-打开文件并追加(append)内容,任何写入的数据会自动添加到文件末尾;
t-表示操作的是一个文本(text)文件;
b-表示操作的是一个二进制(binary)文件。
3. 使用with安全读取决议文件
我们使用open( )函数打开文件进行读写后,经常忘记了最后一个步骤,将文件关闭,这样可能导致对同一文件别的操作不能正常进行,即使不再使用该文件,也会因为文件流对象未销毁而一直存在占有内存,造成不必要的开销。
Python使用with-as语句提供了一个叫做上下文管理器(context manager)的对象对代码块的执行环境进行管理,其典型用法包括保存和恢复各种全局状态,锁定和解锁资源,关闭打开的文件等等。
