"r" = open for reading "w" = erase or create new empty "a" = append or create for writing "rb" = open binary file for reading "wb" = erase binary file or create empty "ab" = open binary file for appending "r+" = open for reading and writing "w+" = erase, open for reading/writing "a+" = retain contents, read/write "r+b" or "rb+" = open binary file for read/write "w+b" or "wb+" = erase binary file, read/write "a+b" or "ab+" = retain contents of binary file, read/write