文件操作(IO技术)
一个完整的程序一般都包括数据的存储和读取,实际开发中,我们经常要从外部存储介质(硬盘,光盘,U盘等)读取数据,或者将程序产生的数据存储到文件中,实现持久化保存。
很多软件系统是将数据存储到数据库中,数据库实际也是基于文件形式存储的。
文本文件和二进制文件
按文件中数据存储形式,将文件分为文本文件和二进制文件两种
- 文本文件:文本文件存储的是普通的字符文本,默认问unicode字符集,可以使用记事本程序打开,但是,像word软件编辑的文档不属于文本文件
- 二进制文件:二进制文件把数据以字节形式存储,无法用记事本打开,必须使用专用的软件解码,常见的有:MP4,MP3,JPG,doc等
文件操作相关模块叙述
| 名称 | 说明 |
| io模块 | 文件流的输入和输出操作 |
| os模块 | 基本操作系统功能,包括文件操作 |
| glob模块 | 查找符合特定的规则的文件路径名 |
| fnmatch模块 | 使用模式来匹配文件路径 |
| filecmp模块 | 用于文件的比较 |
| csv模块 | 用于csv文件的处理 |
| pickle和cPickle | 用于序列化和反序列化 |
| xml包 | 用于XML数据处理 |
| fileinput模块 | 处理多个输入文件 |
| bz2、gzip、zipfile、zlib、tarfile | 用于处理压缩和解压缩文件(分别对应不同算法) |
创建文件对象open()
open()函数用于创建文件对象,基本语法如下:
open(文件名[,打开方式])
如果只是文件名,代表在当前目录下的文件,文件名可以录入全路径,例如:D:\a\b.txt, 为了减少\的输入可以使用原始字符串r"d:\b.txt",示例如下:
f = open(r"d:\b.txt","w")
打开方式有如下几种:
| 模式 | 描述 |
| r | 读read模式 |
| w | 写 write模式,如果文件不存在,则重新创建,如果存在,则重新改写 |
| a | 追加append模式,如果文件不存在则创建,如果存在则追加新内容 |
| b | 二进制模式(可以与其他模式组合使用) |
| + | 读、写模式(可以与其他模式组合使用) |
文本文件对象和二进制文件对象的创建:
如果没有增加模式‘’b‘,则默认创建的是文本文件对象,处理的基本单元是字符。如果是二进制模式’b‘则创建的是二进制文件对象,处理基本单元是字节
文本文件的写入
基本文件的写入操作
- 创建文件对象
- 写入数据
- 关闭文件对象