为什么我的文件内容在我尝试阅读时被删除了?打开函数 python
Why is content of my file deleted when i try to read it? open function python
好的,伙计们,我对编程还很陌生。我想通了,我可以学习编写一些东西,这可能在未来真正有用,所以我编写了这段代码。我试图给自己 2 个选项 1 登录和 2 注册。当我注册一切正常时,它将我的文本加密为 sha256 并将其写入文件,但是当我尝试“登录”时,打开读取功能会删除文件 Login.txt 的内容,因此逻辑上检查失败。提前谢谢你。
import hashlib
#Creating file to save token into.
login_file = open("Login.txt", "w")
def register():
print("Please insert your token:")
reg_token = input()
#Encrypting and writing token into file.
login_file.write(hashlib.sha256(reg_token.encode()).hexdigest())
login_file.close()
print("Registration completed.")
def login():
token_file = open("Login.txt", "r").read()
print("Please login with your token:")
log_token = input()
#Calculating hash for input.
hash = hashlib.sha256(log_token.encode()).hexdigest()
#Comparing hashes.
if hash == token_file:
print("Success!")
if hash != token_file:
print("Login was unsuccessful.")
def prompt():
print("For login type 1. For registration type 2.")
prompt_input = input()
if prompt_input == "1":
login()
if prompt_input == "2":
register()
###############################################################################
prompt()
您第一次打开文件的行应该在 register()
函数内。
open()
的第二个参数决定文件的处理方式。 ”w”
先删除内容。 ”a”
将允许您附加到文件。
好的,伙计们,我对编程还很陌生。我想通了,我可以学习编写一些东西,这可能在未来真正有用,所以我编写了这段代码。我试图给自己 2 个选项 1 登录和 2 注册。当我注册一切正常时,它将我的文本加密为 sha256 并将其写入文件,但是当我尝试“登录”时,打开读取功能会删除文件 Login.txt 的内容,因此逻辑上检查失败。提前谢谢你。
import hashlib
#Creating file to save token into.
login_file = open("Login.txt", "w")
def register():
print("Please insert your token:")
reg_token = input()
#Encrypting and writing token into file.
login_file.write(hashlib.sha256(reg_token.encode()).hexdigest())
login_file.close()
print("Registration completed.")
def login():
token_file = open("Login.txt", "r").read()
print("Please login with your token:")
log_token = input()
#Calculating hash for input.
hash = hashlib.sha256(log_token.encode()).hexdigest()
#Comparing hashes.
if hash == token_file:
print("Success!")
if hash != token_file:
print("Login was unsuccessful.")
def prompt():
print("For login type 1. For registration type 2.")
prompt_input = input()
if prompt_input == "1":
login()
if prompt_input == "2":
register()
###############################################################################
prompt()
您第一次打开文件的行应该在
register()
函数内。open()
的第二个参数决定文件的处理方式。”w”
先删除内容。”a”
将允许您附加到文件。