Чтение и запись текстовых файлов
После завершения программы данные из переменных пропадают. Учимся сохранять их надолго: записывать в файл и читать из файла.
Список тем (11 из 11)
Глава 1. Основы Python
Глава 2. Списки и строки
Глава 3. Функции и модули
Глава 4. Работа с файлами
Переменные хранятся в памяти компьютера и исчезают при завершении программы. Чтобы данные сохранились надолго, их нужно записать в файл. Текстовый файл — это файл с обычным текстом (например, notes.txt), его можно открыть в любом редакторе. С файлами Python работает через функцию open().
Работа с файлом состоит из трёх этапов: открыть, прочитать или записать, закрыть. Удобнее всего конструкция with: with open("notes.txt", "w", encoding="utf-8") as f: и внутри f.write("Salom\n"). По окончании блока файл закрывается сам. Важна буква режима: "r" — чтение, "w" — запись (старое содержимое стирается), "a" — дозапись в конец.
Читать файл можно несколькими способами. f.read() возвращает весь текст одной строкой, f.readline() читает одну строку, а f.readlines() — список строк. Проще всего пройти по файлу циклом: for line in f: и print(line.strip()). Метод strip() убирает невидимый символ перевода строки в конце.
Если читаемого файла нет, Python выдаёт ошибку FileNotFoundError. Её можно перехватить через try и except FileNotFoundError: и показать пользователю понятное сообщение. Чтобы узбекские буквы сохранялись правильно, взять за правило указывать encoding="utf-8". При записи чисел в файл преобразуйте их в строки функцией str().
Главное
- Данные, записанные в файл, сохраняются и после завершения программы.
with open(имя, режим, encoding="utf-8") as f:— удобный способ работы с файлом.- Режимы:
"r"чтение,"w"запись,"a"дозапись. - Отсутствующий файл вызывает
FileNotFoundError; её можно перехватить черезtry/except.
Практические задания
- Напишите программу, которая спрашивает имя и дописывает его в файл
names.txtв режиме"a"; запустите её три раза. - Прочитайте файл
names.txtпострочно и выведите каждое имя с порядковым номером. - Составьте программу, считающую количество строк в файле; если файл не найден, выводится сообщение «Файл не найден» (
try/except).
Вопросы для закрепления
Проверьте себя: сначала подумайте, потом откройте ответ.
1Чем отличаются режимы `"w"` и `"a"`?Показать ответСкрыть ответ
`"w"` стирает старое содержимое файла и пишет заново, а `"a"` дописывает в конец существующего.2Чем удобно использовать `with open(...)`?Показать ответСкрыть ответ
После окончания блока файл закрывается автоматически, и закрыть его забыть невозможно.
Войдите на сайт
Слайды и PDF доступны только зарегистрированным пользователям: и просмотр, и скачивание. Вход бесплатный.
Войдите на сайт
Слайды и PDF доступны только зарегистрированным пользователям: и просмотр, и скачивание. Вход бесплатный.
Пройдено тем: 0 из 11
Войти и отметить