我已经尝试打开文件r+
并a+
读取和写入,但 'r+' 和 'a+' 都将 str 附加到文件末尾。
r+
那么,和有什么区别a+
呢?
添加:
我找到了原因:
我已阅读文件对象并忘记了 seek(0) 将位置设置为开始
我已经尝试打开文件r+
并a+
读取和写入,但 'r+' 和 'a+' 都将 str 附加到文件末尾。
r+
那么,和有什么区别a+
呢?
添加:
我找到了原因:
我已阅读文件对象并忘记了 seek(0) 将位置设置为开始
一个区别是r+
如果文件不存在,它将不会被创建并且打开失败。但是,如果a+
文件不存在,则会创建该文件。
如果您在 中使用过它们C
,那么它们几乎与 C 中的相同。
从功能的手册页fopen()
: -
r+
: - 开放阅读和写作。流位于文件的开头。a+
: - 开放阅读和写作。如果文件不存在,则创建该文件。流位于文件的末尾。对文件的后续写入将始终在文件的当前末尾结束,而与任何干预 fseek(3) 或类似内容无关。