just want to add on r+, w+ and a+:
r+: will open a file for both reading and writing -- file must exist
w+: will create an empty file for both reading and writing
a+: will open file for reading and appending -- file is created if it does not exist
thanks @privateger
Thanks for your comment!
I have only just now seen it :)