补充 各种Python File(文件) open模式的坑

1.r+

官方文档:打开一个文件用于读写。文件指针将会放在文件的开头。

r+ 模式兼具'读'&'写',但并没有分别给'读'&'写'的定位,其实官方文档后一句话[文件指针将会放在文件的开头]是'读'的定位,并不是'写'的定位,造成一个坑。

所以具体定义应该为:

  • r+模式」兼具'读'&'写',当'读取操作时',指针指向文件初始位「seek(0)」
  • 当'写入操作时',指针指向文件末位「seek(0,2)即最后一个非空字符的下一位」

所以,实际上「r+模式」中的'写'相当于「a模式」即在文档末尾追加。
所以 「r+模式」== r+a

PS.使用seek(n)定位可以强行在目标位置写入内容。


2.w+

open(file,'w+')后,直接清空原文本,不给机会使用seek()定位。

posted @ 2020-04-23 01:53  深藍  阅读(406)  评论(0编辑  收藏  举报