В Python, почему "r +", но не "rw" означает "читать и писать"?

В Python при открытии файла мы используем 'r' для указания только для чтения и 'w' только для записи. Затем мы используем 'r+' для обозначения "чтение и запись".

Почему бы не использовать 'rw'? Не выглядит ли 'rw' более естественным, чем 'r+'?


Редактировать 25 января:

Ой.. Думаю, мой вопрос выглядит немного запутанным. Я пытался спросить: 'r' - первая буква "read" и 'w' первая буква "write", поэтому 'r' и 'w' выглядят естественными, чтобы отображать "читать" и "писать". Однако, когда дело доходит до "чтения и записи", Python использует "r +" вместо 'rw'.

Таким образом, вопрос состоит в том, что на самом деле речь идет о рациональном именовании вместо различий между ними.

Ответы

Ответ 1

Python копирует режимы из C fopen() вызов. r+ - это то, что использует C, и Python придерживался 40-летнего соглашения.

Ответ 2

Не воспринимал это как чистый английский, r+ означает read extended на самом деле, Python!=English. Все языки имеют основные правила, а @John Kugelman упомянул, что Python застрял со старым.

Ответ 3

Вот что происходит:

    >>> f1 = open("blabla.txt", 'rw');
    Python 3.3.3 (v3.3.3:c3896275c0f6, Nov 18 2013, 21:18:40) [MSC v.1600 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> f1=open("blabla.txt",'rw')
Traceback (most recent call last):
  File "<pyshell#0>", line 1, in <module>
    f1=open("blabla.text",'rw')
ValueError: must have exactly one of create/read/write/append mode

Как только функция чтения/записи/добавления сконфигурирована в основном питоне. Некоторые скажут, что это связано со старыми директивами fopen() c-style 'r' 'w' 'r +' и т.д.