r 読むために
w 書き込み用
r+ ファイルが存在する場合は元のコンテンツを削除せずに読み取り/書き込み用、そうでない場合は例外を発生
w+ 元のコンテンツを削除し、ファイルが存在する場合は読み取り/書き込み、それ以外の場合はファイルを作成
例えば、
>>> with open("file1.txt", "w") as f:
...   f.write("ab\n")
... 
>>> with open("file1.txt", "w+") as f:
...   f.write("c")
... 
$ cat file1.txt 
c$
>>> with open("file2.txt", "r+") as f:
...   f.write("ab\n")
... 
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IOError: [Errno 2] No such file or directory: 'file2.txt'
>>> with open("file2.txt", "w") as f:
...   f.write("ab\n")
... 
>>> with open("file2.txt", "r+") as f:
...   f.write("c")
... 
$ cat file2.txt 
cb
$