文件操作
为了保存数据,方便修改和分享,数据通常以文件的形式存储在磁盘等外部存储介质中。根据逻辑上编码不同可将文件大致分为两类:文本文件和二进制文件。
文本文件:基于字符编码,存储的是普通字符串,不包括字体、字号、样式、颜色等信息,可通过文本编辑器显示和编辑,例如txt文件;
二进制文件:基于值编码的,以字节形式存储,其编码长度根据值的大小长度可变。通常在文件的头部相关属性中定义表示值的编码长度。例如视频、音频等。
Python中对文件的操作通常按照以下三个步骤进行:
(1)使用open()函数打开(或建立)文件,返回一个file对象;
(2)使用file对象的读/写方法对文件进行读/写的操作;
(3)使用file对象的close()方法关闭文件。
open()方法
Python中提供open()方法用于打开一个文件,并返回文件对象,在对文件进行处理过程都需要使用到这个函数,如果该文件无法被打开,会抛出OSError错误。open()方法的声明如下:
open(file, mode='r',buffering=None,encoding=None,errors=None,newline=None, closefd=True)
file:表示文件名或文件路径的字符串;
mode:文件打开的模式,如读、写、追加等,默认为读;
buffering:设置缓存;
encoding:设置文件的编码,一般使用“utf-8”;
errors:设置编码错误的处理方式(忽略或报错);
newline:设置新行处理方式;
closefd:设置文件关闭时是否关闭文件描述符;
其中file参数是必须的,其他参数都是可选的,都有默认值。
实际应用中通常传递三个参数:file、mode和 encoding.
file参数:以d:\test.txt(D盘下test.txt文件)为例,文件名的路径包含特殊字符“\”,有以下三种写法:
r'd:\test.txt'
‘d:\\test.txt'
'd:/test.txt'
mode参数:python中文件打开的模式主要涉及到以下字符:
r:以只读形式打开文件(默认值,可以省略),文件不存在时报错;
w:以只写形式打开文件,文件不存在时,则创建文件,文件存在时会清除原有内容;
x:文件不存在时新建文件并写入,文件存在则报错;
a:如果文件存在,在文件末尾追加写内容;
b:操作二进制文件;
t:操作文本文件(默认值,可以省略);
+:打开文件用于更新,既可读,也可写,不能单独使用,需和其他字符配合使用。