Python 读取文件来验证用户响应并失败

问题描述 投票:0回答:1

我编写了一个程序,可以生成 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 还很陌生,所以我可能会查看您可能认为很容易发现的东西。

python read-write
1个回答
0
投票

问题是 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")
© www.soinside.com 2019 - 2024. All rights reserved.