Python取消勾选,然后分配给字典

Python取消勾选,然后分配给字典,python,dictionary,pickle,eoferror,Python,Dictionary,Pickle,Eoferror,更新: 我尝试创建两个单独的函数来保存和加载字典。工作得很漂亮。但仍然存在一个问题。程序将无法识别行emails=updateEmails 它可以很好地解压,这些内容都在各自的字典中,但我无法让它将它们分配到所有其他功能都会改变的全局“电子邮件”中 ===================================================== import pickle dataList = open('data.txt','wb') global

更新: 我尝试创建两个单独的函数来保存和加载字典。工作得很漂亮。但仍然存在一个问题。程序将无法识别行emails=updateEmails

它可以很好地解压,这些内容都在各自的字典中,但我无法让它将它们分配到所有其他功能都会改变的全局“电子邮件”中

=====================================================

    import pickle     
    dataList = open('data.txt','wb')
    global emails
    emails = {}

    def loading():
        inFile = open('data.txt', 'rb')
        updatedEmails = pickle.load(inFile)
        print (updatedEmails)
        inFile.close()

    def saving(emails):
        dataList = open('data.txt', 'wb')
        pickle.dump(emails, dataList)
        dataList.close()


    def displayMenu():
        print('\t\t\t\tMenu')
        print('\t5)Display the list')
        print('\t6)Quit')

    def main():
        choice = 0
        loading()
        while choice != 6:
            displayMenu()
            choice = int(input('Enter your choice: '))

            if choice == 1:
                add()
            elif choice == 6:
                saving(emails)
            elif choice == 7:
                loading()
                emails = updatedEmails

    main()

您的代码先打开pickle文件进行写入:

将文件截断为0;当您尝试从同一个文件加载pickle时,它是空的

仅当您实际上要向文件写入新的pickle时才打开文件进行写入,而不是在之前

dataList = open('data.txt','wb')