python. как сохранить несколько значений в список через input

Здравствуйте) Нужна помощь в сохранении нескольких переменных в список

list =['спать', 'Машина', 'Мотоцикл', 'Еще что-нибудь', 'тд']
num  =  input('Введите слово:')
list.append(num)
for i in list:
    print(i)

При перезапуске программы стирается предыдущий ввод. И все заново. Как сделать, чтобы input вводил бы данные сколько угодно раз и дополнял список?)


Ответы (2 шт):

Автор решения: Eoan Ermine

Вы можете сохранять переменную в файл и загружать ее из него с помощью встроенного модуля pickle:

import pickle
import os

storage_filename = "storage.pickle"

list = ['спать', 'Машина', 'Мотоцикл', 'Еще что-нибудь', 'тд']

if not os.path.exists(storage_filename): # Если файла не существует
    with open(storage_filename, "wb") as f: # То создаем его
        pickle.dump(list, f) # Сохрняя в него наш список
else: # Если же существует
    with open(storage_filename, "rb") as f:
        list = pickle.load(f) # То загружаем из него список

num = input('Введите слово:')
list.append(num)
for i in list:
    print(i)

with open(storage_filename, "wb") as f:
    pickle.dump(list, f) # Сохраняем измененный список в файл
→ Ссылка
Автор решения: FanaticExplorer

Можете использовать json:

import json
import os

# Имя файла для хранения данных
filename = 'data.json'

# Если файл существует, загружаем данные из файла, иначе создаем пустой список
if os.path.exists(filename):
    with open(filename, 'r') as file:
        list_data = json.load(file)
else:
    list_data = ['спать', 'Машина', 'Мотоцикл', 'Еще что-нибудь', 'тд']

# Ввод нового значения
num = input("Введите слово: ")
list_data.append(num)

# Сохраняем обновленный список в файл
with open(filename, 'w') as file:
    json.dump(list_data, file)

# Выводим список
for i in list_data:
    print(i)
→ Ссылка