Проблема, с которой я столкнулась с этим кодом, заключается в том, что программа не будет писать и проверять регистрационный ключ в одном экземпляре программы. Если я введу правильный пароль, который соответствует переменной 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)
Ничего себе, это работает! Я не могу поверить, что это было так просто! Я попытался вынуть команды для закрытия текстовых файлов, но он вернулся к тому же вопросу. Нужно ли закрывать текстовый файл после каждого чтения или записи? – Pyguy
Вы можете выполнить поиск(), чтобы сбросить указатель на запись после завершения записи. –