ValueError:在编写非常基本的passwd管理器时,没有足够的值来解包python3中的错误



我是一个新手编程,我不断得到这个错误,而使用vedere()函数。对不起,如果这是一个愚蠢的问题,但我是全新的python和这个论坛。也对不起,如果代码的某些部分是在意大利。顺便说一句,这是一个非常基本的密码管理器,对密码进行了一些加密,下面是代码:

import pyfiglet
from cryptography.fernet import Fernet
r = pyfiglet.figlet_format("Petrux Passwd Manager", font="slant")
print(r)
'''def write_key():
key = Fernet.generate_key()
with open("key.key", "wb") as k:
k.write(key)'''
def load_key():
file = open("key.key", "rb")
key = file.read()
file.close()
return key
pwd = input("Inserisci la pswd master:n")
key = load_key() + pwd.encode()
fernet = Fernet(key)
def aggiungi():
dominio = input("Dominio:n")
email = input("Email o username:n")
passwd = input("Password:n")
with open("5f4dcc3b5aa765d61d8327deb882cf99.txt", "a") as f:
f.write(dominio + "|" + email + "|" + fernet.encrypt(passwd.encode()).decode() + "n")
print("Credenziali aggiunte con successo!")
def vedi():
with open("5f4dcc3b5aa765d61d8327deb882cf99.txt", "r") as f:
for line in f.readlines():
data = line.rstrip()
dominio, user, passw = data.split("|")
print("Dominio: ", dominio,"User: ", user, "| Password: ",
fernet.decrypt(passw.encode()).decode())
while True:
if pwd == "p3truxx":
mode = input("Vuoi aggiungere una password o vedere le esistenti?n(aggiungere/vedere)n nOppure scrivi q per usciren").lower()
if mode == "vedere":
vedi()
elif mode == "aggiungere":
aggiungi()
elif mode == "q":
quit()
else:
print("Input non valido coglione")
else:
print("Password sbagliata")
continue

错误如下:

Traceback (most recent call last):
File "C:UsersinvicPycharmProjectsadventuremain.py", line 43, in <module>
vedi()
File "C:UsersinvicPycharmProjectsadventuremain.py", line 35, in vedi
dominio, user, passw = data.split("|")
ValueError: not enough values to unpack (expected 3, got 1)

感谢在评论中回应的用户,我试图用相同的代码创建一个新文件,并且工作得很好。可能旧的。txt文件包含一些没有"|"的行。

最新更新