Python 读取同一程序实例中的文本文件密钥时出现问题

Python 读取同一程序实例中的文本文件密钥时出现问题,python,tkinter,numbers,key,Python,Tkinter,Numbers,Key,这段代码的问题是程序不会在程序的一个实例中写入和检查注册密钥。如果输入与goodKey变量匹配的正确密码,文本文件将被覆盖,但我必须在程序识别出密钥正确后重新启动程序,然后运行程序的其余部分。如果我不必重新运行模块进入主程序,代码将是完美的 类注册窗口: def __init__(self): print('Class: Register Window') registerWindow=Tk() registerWindow.resiz

这段代码的问题是程序不会在程序的一个实例中写入和检查注册密钥。如果输入与goodKey变量匹配的正确密码,文本文件将被覆盖,但我必须在程序识别出密钥正确后重新启动程序,然后运行程序的其余部分。如果我不必重新运行模块进入主程序,代码将是完美的

类注册窗口:

    def __init__(self):
        print('Class: Register Window')


        registerWindow=Tk()
        registerWindow.resizable(0, 0)
        registerWindowTitle=registerWindow.title('Register Your Software...')
        registerWindowSize=registerWindow.geometry('300x100')


        #Code Entry
        labelName_RegisterCode=Label(registerWindow, text='Enter Your Registration Code:')
        labelName_RegisterCode.grid(row=1, column=0)

        entryBox_RegisterCode=Entry(registerWindow, width=16, bg='red')
        entryBox_RegisterCode.grid(row=1, column=1)


        goodKey=('password')


        def registerNow(registerWindow, goodKey):
            print('Class: Register Window >> Module: Register Now')


            button_RegisterCode=Button(registerWindow, text='Submit', width=8, height=2, command=lambda: writeKey(registerWindow, goodKey))
            button_RegisterCode.place(x=220, y=50)


        def writeKey(registerWindow, goodKey):
            print('Class: Register Window >> Module: Write Key')


            text_EnteredCode=open('key.txt', 'w')
            text_EnteredCode.write(str(entryBox_RegisterCode.get()))
            text_EnteredCode.close
            keys(registerWindow, goodKey)


        def keys(registerWindow, goodKey):
            print('Class: Register Window >> Module: Keys')


            text_RegisterCodeCheck=open('key.txt', 'r')
            print(text_RegisterCodeCheck)


            if text_RegisterCodeCheck.readline() == goodKey:


                text_RegisterCodeCheck.close
                print('Your key is valid')
                registerWindow.destroy()
                mainWindowSetup()


            else:
                registerNow(registerWindow, goodKey)


        keys(registerWindow, goodKey)

由于调用close函数的方式有误,您的文件可能无法关闭

text_EnteredCode.close 
应该是

text_EnteredCode.close()

这应该可以解决您所面临的问题。

哇,这很有效!我真不敢相信事情竟如此简单!我试着取出关闭文本文件的命令,但它又出现了同样的问题。每次读取或写入后是否需要关闭文本文件?您可以执行seek()操作,在写入完成后重置指向记录的指针。