文件操作(IO技术)
1、数据库实际也是基于文件形式存储的
2、文本文件和二进制文件
文本文件:存储普通“字符”文本,默认为unicode字符集,可以用记事本程序打开,但是像word软件编辑的文档不是文本文件
二进制文件:数据内容用“字节”存储,无法用记事本打开,必须使用专用的软件解码,常见的有:MP4视频文件,MP3音频文件、JPG图片、doc文档
3、相关模块
名称 |
说明 |
io模块 |
文件流的输入和输出操作 |
os模块 |
基本操作系统功能,包括文件操作 |
glob模块 |
查找复合特定规则的文件路径名 |
fnmatch |
使用模式来匹配文件路径名 |
fileinut |
处理多个输入文件 |
4、常用编码介绍
ASCII码:世界上最早最通用的单字节编码系统,主要用来显示现代英语以及其他西欧语言。(7位表示一个字符,最高位为0,只能表示128个字符 2^7 = 128)
ISO8859-1: 8位表示一个字符,能表示256个字符,兼容ASCII
unicode码:定长编码,2字节表示一个字符,不兼容ISO8859-1
UTF-8: 变长编码,1~4个字节表示一个字符,英文一个字节,汉子三个字节
5、
f = open(r"d:\bb.txt", "w", encoding="utf-8")
s = ['老王\n', '老李\n','老刘\n']
f.writelines(s)
f.close
6、关闭文件流
由于底层是由操作系统控制,所以已打开的文件必须显示调用close方法关闭文件对象。当调用close()方法时,首先会将缓冲区数据写入文件(也可以直接调用flush()方法),再关闭文件,释放文件对象。
为了确保打开的文件对象正常关闭,一般结合异常机制的finally或者with关键字实现,无论何种情况都能关闭打开的文件对象
try:
f = open(r"my01.txt","a")
str = "laowang"
f.write(str)
except BaseException as e:
print(e)
finally:
f.close()