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)