在python中打开文件时'r+'和'a+'有什么区别?[duplicate]

sczxawaw  于 2023-01-16  发布在  Python
关注(0)|答案(3)|浏览(151)
    • 此问题在此处已有答案**:

(9个答案)
三年前关闭了。
我已经尝试了r+a+来打开文件并进行读写,但是"r +"和"a +"都是将str附加到文件末尾。
那么,r+a+之间的区别是什么呢?
增加:
我已经找到了原因:
我已读取文件对象,但忘记了seek(0)将位置设置为开始

qhhrdooz

qhhrdooz1#

Python打开文件的方式几乎与as in C相同:

  • r+打开以进行阅读。流位于文件的开头。
  • a+打开以阅读和追加(在文件末尾写入)。**如果文件不存在,则创建该文件。**读取的初始文件位置位于文件开头,但输出将追加到文件末尾(但在某些Unix系统中,不考虑当前查找位置)。
z31licg0

z31licg02#

一个不同之处是r+如果文件不存在,它将不会被创建并且打开失败。但是对于a+,如果文件不存在,它将被创建。

wvt8vs2t

wvt8vs2t3#

如果您在C中使用过它们,那么它们与C中的几乎相同。
fopen()函数的manpage中:

***r+:-**打开以进行阅读。流位于文件的开头。
***a+:-**打开以进行阅读。如果文件不存在,则创建该文件。流位于文件末尾。对该文件的后续写入将始终在当前文件末尾结束,而不管其间是否存在任何fseek(3)或类似内容。

相关问题