我编写了一个程序,可以生成 12 个字母的密钥并将其写入文件。然后用户必须在文件中找到密钥并将其输入,然后程序将读取文件进行验证,但失败了。
我又试了一次,但还是不行。我输入了密钥的确切字母,但它不起作用并显示“失败”。这是代码片段。
iKey = input("Key: ")
print("validating...")
f = open("./Keys.txt", "r")
Key = f.read()
print(Key)
if iKey == Key:
print("success!")
else:
print("fail")
请记住,我对 Python 还很陌生,所以我可能会查看您可能认为很容易发现的东西。
问题是 f.read() 最后还会读取一个换行符。 因此,这里的纯粹解决方案是使用
strip()
删除任何特殊字符,例如新行 \n
。
所以 Key = f.read().strip()
应该可以解决问题。
现在还有一些其他评论。尽管 python 会自行关闭文件,但通常最好自己关闭文件。 在文件末尾使用
f.close()
。
现在我们来谈谈Python的关键字
with
。
Python 中的 with 语句用于使用上下文管理器定义的方法包装代码块的执行。这最常用于管理文件操作等资源,它确保文件在其套件完成后正确关闭,即使出现错误也是如此。这个概念被称为“上下文管理”,是 Python 资源管理协议的一部分。
因此,您可以将代码编写为
iKey = input("Key: ")
print("validating...")
with open("Keys.txt", "r") as f:
Key = r.read().strip()
print(Key)
if iKey == Key:
print("success!")
else:
print("fail")