When you open a file, you must specify how it is to be opened. This means whether to create it from new, overwrite it and whether it's text or binary, read or write and if you want to append to it. This is done using one or more file mode specifiers which are single letters "r", "b", "w", "a" and + (in combination with the other letters).
"r" - Opens the file for reading. This fails if the file does not exist or cannot be found.
"w" - Opens the file as an empty file for writing. If the file exists, its contents are destroyed.
"a" - Opens the file for writing at the end of the file (appending) without removing the EOF marker before writing new data to the file; this creates the file first if it doesn't exist.
Adding + to the file mode creates three new modes:
"r+" Opens the file for both reading and writing. (The file must exist.)
"w+" Opens the file as an empty file for both reading and writing. If the file exists, its contents are destroyed.
"a+" Opens the file for reading and appending; the appending operation includes the removal of the EOF marker before new data is written to the file and the EOF marker is restored after writing is complete; creates the file first if it doesn't exist.
On the next page : File Modes Continued