Мне интересно, что происходит с проверкой режима файла open()
(Python2.7):
>>> with open('input.txt', 'illegal') as f:
... for line in f:
... print line
...
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: mode string must begin with one of 'r', 'w', 'a' or 'U', not 'illegal'
>>> with open('input.txt', 'rock&roll') as f:
... for line in f:
... print line
...
1
2
3
Итак, я не могу открыть файл в режиме illegal
, но я могу открыть его в режиме rock&roll
. Какой режим фактически используется для открытия файла в этом случае?
Обратите внимание, что на python3 я не могу использовать оба illegal
и rock&roll
:
>>> with open('input.txt', 'rock&roll') as f:
... for line in f:
... print(line)
...
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid mode: 'rock&roll'
>>> with open('input.txt', 'illegal') as f:
... for line in f:
... print(line)
...
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid mode: 'illegal'
И это запутанно, почему поведение отличается от python3.x?