1
def btnClick(self):
    filereader = open("Login.txt", 'r+')
    dataload = filereader.readlines()
    UN=self.entr1.get()
    PW=self.entr2.get()
    for line in dataload:
        (username,password) = line.split('|')
        UN2 = username
        PW2 = password
        if (UN==UN2) & (PW==PW2):
            tkMessageBox.showinfo("Success", "Successfully login!")
            self.main()
        else:
            tkMessageBox.showinfo("Error", "Incorrect login credentials!")
            self.clear()
    filereader.close()
    return

ユーザーがログインボタンをクリックしたときのイベントの上記のコードがあります.Imはメモ帳をデータベースとして使用しており、これは内部のデータです

ユーザー|1234
管理者|1234

コードは正しいと思いますが、実行すると、正しいデータを入力しても常に間違っていると表示されます。私の間違いを特定するのを手伝ってくれませんか。

4

1 に答える 1

2

簡単なprintステートメントを使用して、ファイルから読み取った値を出力し、実際に入力した値と比較できる必要があります。


.readlines()は改行を削除しないため、ファイルから読み取った行/パスワードは常に文字で終わります\n

それを削除する必要があります。replace('\n', '')簡単な方法は、 orを呼び出すことrstrip('\n')です:

(username,password) = line.replace('\n', '').split('|')

または使用

filereader.read().splitlines()

それ以外のfilereader.readlines()

于 2013-02-13T11:14:43.917 に答える