Python r模式

现在我们来详细讲一下,r、w、a 。

我们知道这三个是控制文本读写的模式,既然是控制读写,我们读写的内容到底是二进制格式还是字符串格式的呢?

所以r、w、a还得搭配控制读写内容的模式,t模式和b模式一起来使用。

现在我们主要讲的是r、w、a,所以我们就在t模式的基础上,来研究r、w、a。

也就是说我们接下来要讲的是rt、wt和at,等我们把r、w、a讲完之后,再来研究b模式是怎么回事。

首先来看r模式,r模式是只读模式。

我们前面也说了,它是默认的操作模拟,而t模式是默认的操作内容的模拟。

现在文写一个 with open,然后我写一个不存在的文件路径看会发生什么。

with open(r'G:\PythonProject\学习\学习文件\date\a.txt', mode='rt', encoding='utf-8') as f:

这个参数我们尽量都写上。

这里是我们为了测试在r模式下如果文件不存在会发生什么?所以字代码块我就不写内容了,但是字代码块不写的话内容又会报错。

所以我们可以在这里写一个pass。pass就是什么也不做的意思,你可以理解为它是用来占位置的,这样就不会因为字代码块没有内容而报错了。

with open(r'G:\PythonProject\学习\学习文件\date\z.txt', mode='rt', encoding='utf-8') as f:
    pass

当然这里除了写pass之外还可以写三个点…。作用和pass是一样的。

with open(r'G:\PythonProject\学习\学习文件\date\z.txt', mode='rt', encoding='utf-8') as f:
    ...

来直接运行一下,直接报错了,也就是在r模式下如果文件不存在会直接报错。

r模式下如果文件存在,文件指针就会跳到开始位置,注意这里出现了一个新的概念,叫文件指针。

有c语言基础的同学注意了,这个文件指针和c语言的指针不一样。

在python里面没有真正意义上的指针,python对指针做了很好的封装,我们学的变量其实也就是指针,而刚刚说的这个文件指针你可以想象成这是个闪烁的光标。

你可以用这个闪烁的光标来理解,但是它本身不是光标。

我们用r模式打开文件,这个文件指针就会跳到开始的位置,当然我们往后读数据的时候,这个指针也会跟着往后移动。

我们读一位数据,文件指针也会跟着往后移动一位,而它移动的单位是一个bytes,也就是一个字节。

然后我在这里写f.read(),其实就是文件指着从现在所处的位置,一下读到结尾。

with open(r'G:\PythonProject\学习\学习文件\date\z.txt', mode='rt', encoding='utf-8') as f:
    # pass
    f.read()

而r模式下文件打开的时候,文件指针在开始位置,所以这时候的f.read()就是把这个文件件内容一次性全部从硬盘读入到内存了。

现在我们来思考一个问题,以我们现在的知识储备来看,这个f.read()有没有什么问题。

未经允许不得转载:445IT之家 » Python r模式

赞 (0) 打赏

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏