Зберегти прогрес
МОДУЛЬ 8. МОДУЛІ, ВИНЯТКИ, ФАЙЛИ Й КЛАСИ

Урок 3. Файли: читання й запис

⌨ Python⏱ ~21 хв✎ 9 завдань з автоперевіркою✓ безкоштовно

Пам'ять програми

Досі все, що рахувала програма, зникало після її завершення. Щоб зберегти дані — журнал польоту, список екіпажу, рекорди гри, — їх записують у файл.

Запис у файл

●●●код Python
with open("crew.txt", "w", encoding="utf-8") as f:
    f.write("Каденюк\n")
    f.write("Гагарін\n")
●
open(назва, режим) відкриває файл; with сам закриє його, коли блок закінчиться;
●
режим "w" — записати заново (старий вміст зітреться!), "a" — дописати в кінець, "r" — читати (його можна не писати);
●
encoding="utf-8" — щоб українські літери збереглися правильно;
●
write не додає перехід на новий рядок сам — пиши "\n".

Читання з файлу

●●●код Python
with open("crew.txt", encoding="utf-8") as f:
    text = f.read()            # увесь файл одним рядком

with open("crew.txt", encoding="utf-8") as f:
    for line in f:             # або рядок за рядком
        print(line.strip())    # strip прибирає "\n" у кінці

f.readlines() дає список рядків файлу.

⚠ПАСТКА
Режим "w" стирає файл, щойно ти його відкрив. Хочеш додати запис у журнал — бери "a".
➜ПОРАДА
На сайті файли живуть лише під час одного запуску програми. На своєму комп'ютері файл залишиться в тій самій папці, що й програма.

Якщо файлу немає

Читання файлу, якого немає, дає помилку FileNotFoundError. Її ловлять так само, як інші помилки:

●●●код Python
try:
    with open("records.txt", encoding="utf-8") as f:
        best = int(f.read())
except FileNotFoundError:
    best = 0          # перший запуск — рекордів ще немає
Перевір себе: 9 задач з автоперевіркою
Підказки після помилок, розбір кожної задачі, бали й звання. Безкоштовно, можна без реєстрації.
▶ Розв'язувати задачі