可能重复:
python open built-in function: difference between modes a, a+, w, w+, and r+?
我尝试r+
和a+
打开文件并进行读写,但'r +'和'a +'都将str附加到文件的末尾。
那么,r+
和a+
之间有什么区别?
添加:
我找到了原因:
我已经阅读了文件对象,忘了寻找(0)将位置设置为开始
答案 0 :(得分:44)
Python以almost:
的相同方式打开文件as in C r+
开放阅读和写作。流位于文件的开头。
a+
打开阅读和追加(在文件末尾写)。 如果文件不存在,则创建该文件。读取的初始文件位置位于文件的开头,但输出附加到文件的末尾(但在某些Unix系统中,无论是目前寻求的位置)。
答案 1 :(得分:5)
r+
的一个区别是,如果文件不存在,则不会创建并且打开失败。但是在a+
的情况下,如果文件不存在,将创建该文件。
答案 2 :(得分:3)
如果您在C
中使用过它们,那么它们几乎与C中的相同。
来自fopen()
r+
功能: -
a+
: - 开放阅读和写作。流定位于 该 文件的开头。
- {{1}}: - 开放阅读和写作。如果是,则创建该文件 不 存在。流位于文件的末尾。 Subse- 对文件的quent写入总是以当前的当前结束 档案的结尾,不论任何介入的fseek(3)或类似物。