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

Tan*_*Woo 28 python

可能重复:
python open内置函数:模式a,a +,w,w +和r +之间的区别?

我试着r+a+打开文件和读取和写入,但"R +"和"A +"都是STR附加到文件末尾.

那么,r+和之间的区别是a+什么?


加:

我找到了原因:

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

Vis*_*ioN 49

Python 几乎以与C中相同的方式打开文件:

  • r+ 开放阅读和写作.流位于文件的开头.

  • a+ 打开阅读和追加(在文件末尾写).如果文件不存在,则创建该文件.用于读取的初始文件位置位于文件的开头,但输出附加到文件的末尾(但在某些Unix系统中,无论当前的搜索位置如何).

  • 官方文档暗示"忘记寻求"行为实际上并不能保证(它适用于"*some*"Unix):http://docs.python.org/2/library/functions.html#open.所以,`a +`确实*不*完全与C中的工作方式相同. (3认同)

cod*_*ict 5

一个区别是,r+如果文件不存在,它将不会被创建并且打开失败.但是如果a+文件不存在则会创建.


Roh*_*ain 5

如果您在 中使用过它们C,那么它们几乎与 C 中的相同。

手册页fopen()功能: -

  • r+: - 开放阅读和写作。流位于文件的开头。

  • a+: - 开放阅读和写作。如果文件不存在,则创建该文件。流位于文件的末尾。对文件的后续写入将始终以当前的文件结尾结束,而不管中间有任何 fseek(3) 或类似方法。