这是我正在运行的测试:
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,并且每行都得不到。
有人可以解释为什么会这样吗?
答案 0 :(得分:3)
if str(accget) in line:
应该是
if accget.get() in line:
答案 1 :(得分:1)
我会先尝试两件事。
打印变量,包括accget和文件中的每一行。确保你看到了你的期望。
确保accget的格式与您预期的格式一致。意思是空白,大写,等等。 祝你好运