Для сохранения прогресса обработки данных словаря и возможности продолжить с места остановки вам нужно сохранить текущее состояние словаря `films` в файл. Затем, при следующем запуске программы, вы должны загрузить это состояние и продолжить выполнение программы с сохраненного места.
Вот пример, как это можно сделать:
```python
import random
import json
def gofilm():
try:
with open('iwatch.txt', 'r') as f:
watched_films = json.load(f)
except FileNotFoundError:
watched_films = []
try:
with open('films.txt', 'r') as f:
films = json.load(f)
except FileNotFoundError:
films = {"Фильм1": "Описание1", "Фильм2": "Описание2", "Фильм3": "Описание3"}
with open('films.txt', 'w') as f:
json.dump(films, f)
with open('iwatch.txt', 'a') as f:
while films:
random_film_key = random.choice(list(films))
film_value = films[random_film_key].replace(',', '\n')
print("Фильм: " + random_film_key, "Описание фильма: " + film_value, sep='\n')
question = input("Ты смотрел этот фильм? да - 1, нет - 0\n")
if question == '1':
f.write(random_film_key + '\n')
films.pop(random_film_key)
watched_films.append(random_film_key)
elif question == '0':
continue
else:
break
with open('iwatch.txt', 'w') as f:
json.dump(watched_films, f)
with open('films.txt', 'w') as f:
json.dump(films, f)
gofilm()
```
В этом примере я добавил сохранение состояния словаря `films` в файл `films.txt`. При каждом запуске программы, она будет загружать состояние словаря из этого файла. Если файл не существует, то создается новый словарь с начальными значениями.