Пам'ять програми
Досі все, що рахувала програма, зникало після її завершення. Щоб зберегти дані — журнал польоту, список екіпажу, рекорди гри, — їх записують у файл.
Запис у файл
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".Читання з файлу
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. Її ловлять так само, як інші помилки:
try: with open("records.txt", encoding="utf-8") as f: best = int(f.read()) except FileNotFoundError: best = 0 # перший запуск — рекордів ще немає
Перевір себе: 9 задач з автоперевіркою
▶ Розв'язувати задачіПідказки після помилок, розбір кожної задачі, бали й звання. Безкоштовно, можна без реєстрації.