当使用mode='r+'
打开文件时,文件指针默认位于文件开头。在这种模式下写入数据时,它会将内容直接追加到当前文件指针的位置,而不是替换原来的内容。
在你的例子中,初始时文件指针位于开头,所以f.write('\n this is hello')
会将新的内容追加到已有内容的后面。然后,当你使用f.seek(0)
将文件指针移动到开头时,再次读取文件的时候,它会从文件开头开始读取,因此你会看到之前的内容和新追加的内容都被输出了。
如果你想要替换文件中的内容,可以使用mode='w'
或者mode='r+'
后接f.truncate(0)
清空原有内容再进行写入操作。请注意,在使用mode='w'
打开文件时,原有内容会被完全清空。