Python:如果<string> test中的<string>总是返回false </string> </string>

时间:2013-12-27 16:44:07

标签: python

这是我正在运行的测试:

accget = StringVar()
E2 = Entry(pm, bd =1, textvariable = accget).grid(row=1, column=1)
B2 = Tkinter.Button(pm, text ="Access saved passwords", 
                        command = accesspass).grid(row=1,column=3)


def accesspass():
    for line in reversed(open("passfile.txt", "r").readlines()):
        if str(accget) in line:
            print("yes")   
        else:
            print("no")

设置在GUI中,当用户填写E2并按B2时,程序会从最后一行迭代passfile.txt,如果字符串在一行中则打印是。但是,即使一个单词在一行中,或者我已将该行的全部内容放在该字段中,该测试总是返回false,并且每行都得不到。

有人可以解释为什么会这样吗?

2 个答案:

答案 0 :(得分:3)

if str(accget) in line:

应该是

if accget.get() in line:

答案 1 :(得分:1)

我会先尝试两件事。

  1. 打印变量,包括accget和文件中的每一行。确保你看到了你的期望。

  2. 确保accget的格式与您预期的格式一致。意思是空白,大写,等等。 祝你好运