【发布时间】:2012-10-26 05:28:30
【问题描述】:
我已经尝试r+和a+打开文件和读写,但是'r+'和'a+'都是将str附加到文件末尾。
那么,r+ 和 a+ 有什么区别?
添加:
我找到了原因:
我已读取文件对象,但忘记使用 seek(0) 将位置设置为开始
【问题讨论】:
标签: python
我已经尝试r+和a+打开文件和读写,但是'r+'和'a+'都是将str附加到文件末尾。
那么,r+ 和 a+ 有什么区别?
添加:
我找到了原因:
我已读取文件对象,但忘记使用 seek(0) 将位置设置为开始
【问题讨论】:
标签: python
如果您在C 中使用过它们,那么它们几乎与C 中的相同。
来自fopen()函数的manpage:-
r+: - 可读写。流位于 这 文件的开头。
a+: - 可读写。如果有,则创建该文件 不是 存在。流位于文件的末尾。子 对文件的 quent 写入将始终在当前结束 文件结尾,与任何中间的 fseek(3) 或类似内容无关。
【讨论】:
【讨论】:
a+not 的工作方式与 C 中的完全相同。
fopen 在 some Unix 中没有相同的行为。但是,由于open 函数有其他模式(U、rU),我们可以在答案中添加“几乎”。
r+ 的一个区别是,如果文件不存在,则不会创建它并且打开失败。但在a+ 的情况下,如果文件不存在,则会创建该文件。
【讨论】: