← Все вопросы
В чём разница между режимами 'r', 'w' и 'a' в open()?
19
Постоянно путаю эти буквы. Когда файл затирается, когда дописывается, а когда просто читается? Объясните по-человечески.
3 ответа
28
✓ Принятый ответ — помог автору
Коротко:
'r'— чтение. Файл должен существовать, иначе FileNotFoundError. Писать нельзя.'w'— запись. Файл создаётся, если нет; если есть — всё содержимое стирается. Курсор в начале.'a'— дозапись (append). Файл создаётся, если нет; если есть — старое сохраняется, новое пишется в конец.
Плюс есть 'r+' (чтение+запись без затирания) и буква 'b' для бинарного режима ('rb', 'wb'). Самая частая ловушка новичков — открыть в 'w', ожидая дозаписи, и потерять данные.
Глеб Степанов вот про 'w' что затирает — это меня и спасло 😄 · 8 месяцев назад
9
'w' — стереть и писать, 'a' — дописать в конец. Это главное.
6
Ещё добавлю: с 'x' файл создаётся, но если он уже есть — будет ошибка. Удобно, когда не хочешь случайно перезаписать чужой файл.
Ваш ответ
Войдите, чтобы ответить на вопрос.