I have try r+
and a+
to open file and read and write, but 'r+' and 'a+' are all append the str to the end of the file.
So, what's the difference between r+
and a+
?
Add:
I have found the reason:
I have read the file object and forgot to seek(0) to set the location to the begin
This question is related to
python
If you have used them in C
, then they are almost same as were in C.
From the manpage of fopen()
function : -
r+
: - Open for reading and writing. The stream is positioned at the beginning of the file.a+
: - Open for reading and writing. The file is created if it does not exist. The stream is positioned at the end of the file. Subse- quent writes to the file will always end up at the then current end of file, irrespective of any intervening fseek(3) or similar.
One difference is for r+
if the files does not exist, it'll not be created and open fails. But in case of a+
the file will be created if it does not exist.
Source: Stackoverflow.com