(9个答案)三年前关闭了。我已经尝试了r+和a+来打开文件并进行读写,但是"r +"和"a +"都是将str附加到文件末尾。那么,r+和a+之间的区别是什么呢?增加:我已经找到了原因:我已读取文件对象,但忘记了seek(0)将位置设置为开始
r+
a+
qhhrdooz1#
Python打开文件的方式几乎与as in C相同:
z31licg02#
一个不同之处是r+如果文件不存在,它将不会被创建并且打开失败。但是对于a+,如果文件不存在,它将被创建。
wvt8vs2t3#
如果您在C中使用过它们,那么它们与C中的几乎相同。从fopen()函数的manpage中:
C
fopen()
***r+:-**打开以进行阅读。流位于文件的开头。***a+:-**打开以进行阅读。如果文件不存在,则创建该文件。流位于文件末尾。对该文件的后续写入将始终在当前文件末尾结束,而不管其间是否存在任何fseek(3)或类似内容。
fseek(3)
3条答案
按热度按时间qhhrdooz1#
Python打开文件的方式几乎与as in C相同:
r+
打开以进行阅读。流位于文件的开头。a+
打开以阅读和追加(在文件末尾写入)。**如果文件不存在,则创建该文件。**读取的初始文件位置位于文件开头,但输出将追加到文件末尾(但在某些Unix系统中,不考虑当前查找位置)。z31licg02#
一个不同之处是
r+
如果文件不存在,它将不会被创建并且打开失败。但是对于a+
,如果文件不存在,它将被创建。wvt8vs2t3#
如果您在
C
中使用过它们,那么它们与C
中的几乎相同。从
fopen()
函数的manpage中:***
r+
:-**打开以进行阅读。流位于文件的开头。***
a+
:-**打开以进行阅读。如果文件不存在,则创建该文件。流位于文件末尾。对该文件的后续写入将始终在当前文件末尾结束,而不管其间是否存在任何fseek(3)
或类似内容。