在python中打开文件时,'r +'和'a +'之间有什么区别?

时间:2012-11-06 09:25:43

标签: python

  

可能重复:
  python open built-in function: difference between modes a, a+, w, w+, and r+?

我尝试r+a+打开文件并进行读写,但'r +'和'a +'都将str附加到文件的末尾。

那么,r+a+之间有什么区别?


添加:

我找到了原因:

我已经阅读了文件对象,忘了寻找(0)将位置设置为开始

3 个答案:

答案 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)或类似物。
  •