第15章_文件读写
内容概述:
1、编码格式介绍
2、文件的读写原理
3、文件读写操作
4、文件对象常用的方法
5、with语句
6、目录操作
一、编码格式
- 常见的字符编码格式
- Python的解释器使用的是Unicode(内存)
- .py文件在磁盘上使用UTF-8存储(外存)
一般输入:适用UTF-8编码格式
在文件开头加#encoding=GBK:适用ANSI
GB:国家标准,即简体标准字库
ANSI:是一种字符代码,为使计算机支持更多语言,通常使用 0x80-0xFF(十进制为128-255) 范围的 2 个字节来表示 1 个字符。1.6万个字符空间。不同的国家和地区制定了不同的标准,由此产生了各自的编码标准。
二、文件的读写原理
-
文件的读写俗称“IO操作”
-
文件读写操作流程、
-
操作原理
-
内置函数open()创建文件对象
-
语法规则
注:[ ]内为可选参数
#127.文件的读写原理_读取磁盘中的文件内容
file=open('a.txt','r')
print(file.readlines())
file.close()
三、常用的文件打开模式
- 文件的类型
- 按文件中数据的组织形式,文件分为以下两大类
- 文本文件:存储的是普通“字符”文本,默认为Unicode字符集,可以使用记事本程序打开
- 二进制文件:把数据内容用“字节”进行存储,无法用记事本打开,必须使用专用的软件打开,举例:mp3音频文件,jpg图片,doc文档等
- 按文件中数据的组织形式,文件分为以下两大类
只写模式:文件不存在则创建,存在则覆盖
四、文件对象的常用方法
seek(2):把文件指针移动到新的位置从第2个位之后开始读
read([size]):不加size,读到文末
追加模式:以追加模式打开文件,不存在文件则创建;多次执行,多次追加
tell():返回文件指针的当前位置
flush():后面可以继续write()写入内容
close():后面不可继续写入内容
五、with语句(上下文管理器)
- with语句可以自动管理上下文资源,不论什么原因跳出with块,都能确保文件正确的关闭,以此来达到释放资源的目的
可见open(‘a.txt’,‘r’)在此时数据类型为’_io.TextIoWrapper’型,是一个类对象
当语句出现错误时,如:
函数上半部分依然执行:
注意:其中
__enter__()
和__exit__
方法必须写明,若注释掉,则程序报错:AttributeError:
__enter__
AttributeError:
__exit__
六、目录操作
-
os模块是Python内置的与操作系统功能和文件系统相关的模块,该模块中的语句的执行结果通常与操作系统有关,在不同的操作系统上运行,得到的结果可能不一样。
-
os模块与os.path模块用于对目录或文件进行操作
1、os模块操作目录相关函数
函数 | 说明 |
---|---|
getcwd() | 返回当前的工作目录 |
listdir(path) | 返回指定路径下的文件和目录信息 |
mkdir(path,[mode]) | 创建目录 |
makedirs(pth1/path2…[,mode]) | 创建多级目录 |
rmdir(path) | 删除目录 |
removedirs(path1/path2…) | 删除多级目录 |
chdir(path) | 将path设置为当前工作目录 |
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5LuCKDX6-1639154373866)(C:\Users\滕逸群\AppData\Roaming\Typora\typora-user-images\image-20211210100302735.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OudlO46k-1639154373867)(C:\Users\滕逸群\AppData\Roaming\Typora\typora-user-images\image-20211210124447139.png)]
2、os.path模块操作目录相关函数
函数 | 说明 |
---|---|
abspath(path) | 用于获取文件或目录的绝对路径 |
exists(path) | 用于判断文件或目录是否存在,如果存在返回True,否则返回False |
join(path,name) | 将目录与目录或者文件名拼接起来 |
splitext() | 分离文件名和扩展名 |
basename(path) | 从一个目录中提取文件名 |
dirname(path) | 从一个路径中提取文件路径,不包括文件名 |
isdir(path) | 用于判断是否为路径 |
3、课堂案例