Python W模式

接下来我们看w模式,w模式就是只写模式。

我们以前研究r模式的时候我们知道,r模式在文件不存在的时候会报错,文件存在的时候问价指针会跳到开始位置。

我们还是按照同样的套路,我们来看w模式下文件不存在会发生什么。

我写一个不存在的文件c.txt,然后子代码我就先写一个pass。

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

然后看左边的文件夹列表,看到是没有c.txt的。

现在我一运行,左边就出现了。

所以说w模式下,如果文件路径不存在,就会创建一个空白文件。毫无疑问,文件指针也是位于开始位置。

既然文件路径不存在就会创建空白文件,那如果文件路径存在会发什么呢?

现在我在这个c.txt里面写点内容,然后多复制几行。

我们不保存的话,pycharm也会帮我们自动保存的。

现在这个c.txt是存在的对吧,而且里面也有内容,然后我再来运行一次这个代码。

现在看好像没什么异常,但是当我们打开c.txt的时候看到刚刚里面写的全部不见了。

所以说w模式下,当文件存在的时候会清空文件内容,然后文件指针也会停在开始位置。

所以你千万不要用w模式打开你重要的文件,只要你用w模式打开了,你的文件也报废了。

现在我在子代码块里尝试一下f.read()来运行看看。

直接报错了,说不可读。

这样就验证了我们说w模式是只写模式,只能写不能读。

然后我们要写内容的话,就要调用一个功能了。叫f.write()。

我们可以给它传一个字符串,因为是t模式吗!读写都是以字符串为单位。

with open(r'G:\PythonProject\学习\学习文件\date\c.txt', mode='wt', encoding='utf-8') as f:
    f.write('晓看天色暮看云')

这样就可以把这个字符串写入到这个文件里面,然后我们再来运行一下。

打开c.txt。

这样就把数据写进去了。

你注意看这个文件,是没有换行的,如果想换行的话,就得在要写入的字符串后面加一个\n。

with open(r'G:\PythonProject\学习\学习文件\date\c.txt', mode='wt', encoding='utf-8') as f:
    f.write('晓看天色暮看云\n')

现在再来运行一次。

看!这里换行就出现了。

注意,这不是在后面加了一个\n,而是w模式会在文件存的时候清空文件,所以治理不是直接在后面加了\n。

是清空之后重新写了内容。

我们新写的内容有换行符,如果我再写一个f.write(),里面再加一\n,会发生什么?

with open(r'G:\PythonProject\学习\学习文件\date\c.txt', mode='wt', encoding='utf-8') as f:
    f.write('晓看天色暮看云\n')
    f.write('唧唧复唧唧\n')

这个操作就不会清空原来的内容了,因为w模式只会在打开的时候清空文件内容,我们后面再来执行f.write()就会接着前面的内容继续写。

如果你想在w模式下继续写入内容,必须是再with的子代码下写才可以,或者说必须在文件关闭之前继续写才可以。

如果你分别融了两个with语法来写的话,只会出现最后一次写入的内容。

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

赞 (0) 打赏

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

支付宝扫一扫打赏

微信扫一扫打赏