【Python基础-第15章-文件读写】

第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文档等

在这里插入图片描述

只写模式:文件不存在则创建,存在则覆盖

在这里插入图片描述

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YEzOdfaC-1639154373836)(C:\Users\滕逸群\AppData\Roaming\Typora\typora-user-images\image-20211209175818181.png)]

四、文件对象的常用方法

在这里插入图片描述

seek(2):把文件指针移动到新的位置从第2个位之后开始读

read([size]):不加size,读到文末

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

追加模式:以追加模式打开文件,不存在文件则创建;多次执行,多次追加

在这里插入图片描述
在这里插入图片描述

tell():返回文件指针的当前位置

在这里插入图片描述
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EpoeBv4w-1639154373847)(C:\Users\滕逸群\AppData\Roaming\Typora\typora-user-images\image-20211209235559503.png)]
在这里插入图片描述
在这里插入图片描述

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、课堂案例

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

七、总结

在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值