一、问题详情
我这里是使用如下类型代码打开和写入文件的:
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
如果文件不存在,将会新建该文件;存在就会清空。