Python pickle, не сохраняя элементы списка при перезагрузке - PullRequest
0 голосов
/ 27 февраля 2019

Я очень новичок в кодировании, и для этого конкретного кода я потерян.Цель программы - составить список введенных пользователем имен, сохранить его и перезагрузить при перезапуске программы.Программа не выдает ошибку, но также не сохраняет ничего при перезагрузке.мой вопрос, почему список не сохраняется?любая помощь будет оценена.

вот код, который я попробовал:

python 2.7

    <pre>
import os
import pickle

def display_title_bar():
    os.system('cls')
    print("\t***  Greeter - Hello old and new friends!  ***")

#user choice
def get_user_choice():
    print('1- list peopel we know: ')
    print('2- add someone new: ')
    print('3- enter q to exit')
    return raw_input('please enter 1 2 or q :')


def show_name():
    print(' here are the people we know\n')
    for name in names:
        print(name.title())

def get_new_name():
    new_name=raw_input(' please enter name: ')
    if new_name in names:
        print(' we allready know %s' %new_name)# test for existing members.
    else:
        names.append(new_name)
        print('%s has been added to the list\n'%new_name)
def load_names():
    try:
        file_object=open('names.pydata','rb')
        pickle.dump( names, file_object)
        file_object.close()
        return names
    except Exception as e:
        print(e)
        return[]
def quit():
    try:
        file_object =open('names.pydata','wb')
        pickle.dump(names,file_object)
        file_object.close()
        print(' i will rmemeber the names')
    except Exception as e:
        print(e)
        print(' sorry something went wrong')

#Setup a loop where users can choose 
names= load_names()
choice=''
display_title_bar()

while choice !='q':
    # Respond to the user's choice.
    choice=get_user_choice()
    display_title_bar()
    if choice=='1':
        show_name()
    elif choice =='2':
        get_new_name()

    elif choice =='q': 
        quit()
        print('thanks see you again soon')
    else:
        print(' i dont know what is this\n')

   <code>
...