>>> f2 = open('/tmp/test.txt','r+')
>>> f2.read()'hello girl!'>>> f2.write('
hello boy!')>>> f2.close() hello girl!hello boy!可以看到,如果在写之前先读取一下文件,再进行写入,则写入的数据会添加到文件末尾而不会替换掉原先的文件。这是因为指针引起的,r+ 模式的指针默认是在文件的开头,如果直接写入,则会覆盖源文件,通过read() 读取文件后,指针会移到文件的末尾,再写入数据就不会有问题了。这里也可以使用a 模式
当我们写文件时,操作系统往往不会立刻把数据写入磁盘,而是放到内存缓存起来,只有调用
close(),操作系统才把缓存数据写入写入磁盘。open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None) -> file object
其中参数buffering控制缓冲行为
buffering默认为-1,系统默认的全缓冲
buffering可以设置为大于1的任意整数,字节数为buffering的全缓冲
buffering=1,设置为行缓冲模式
buffering=0, 设置为无缓冲模式