2022年 11月 16日

Python、PyCharm调试的时候写入不了文件分析及解决办法,python处理txt文件的常用操作读、写和追加操作r、r+、w、w+、a、a+

一、问题详情

我这里是使用如下类型代码打开和写入文件的:

f.open()
f.write()
  • 1
  • 2

在dubug运行的时候,我这里想查看写入文件的情况,但是会发现.txt文件为空【dubug的时候可以open但是不一定能write

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

随后我们取消断点继续执行,直到结束

在这里插入图片描述

会发现生成的三个txt文件,除了我们刚才调试一次的train.txt之外,其他两个都写入了文件,但是train.txt为空

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

二、原因可能如下:

当我们写文件时,操作系统往往不会立刻把数据写入磁盘,而是放到内存缓存起来,空闲的时候再慢慢写入。只有调用close()方法时,操作系统才保证把没有写入的数据全部写入磁盘。

所以我们如果不打断点调试,直接运行的时候是正常输出的。但是如果想打断点调试也有输出的话需要加f.close()函数。类似如下:

在这里插入图片描述

三、python处理txt文件的常用操作

  • r 打开只读文件,该文件必须存在。
  • r+ 打开可读写的文件,该文件必须存在。
  • w 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。
  • w+ 打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。
  • a 以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。
  • a+ 以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。

在这里插入图片描述

注意这里 w 如果文件不存在,将会新建该文件;存在就会清空。