我正在构建一个小型密码管理器,它使用随机和字符串模块生成15个随机字符长的密码,并使用json模块将程序中的字典以json格式存储到另一个文件中。该程序还使用“main”密码进行保护,该密码也存储在“data.json”文件中。输入错误的密码后,程序将用新的“main”密码覆盖旧的“data.json”文件
代码:
import string
import json
import random
def generate_password():
chars = string.ascii_lowercase + string.ascii_uppercase
return ''.join(random.choice(chars) for i in range(15))
def get_password():
with open('data.json', 'r') as file:
data = json.load(file)
return data.get('main')
print('Password manager by raphtlw\nversion 1.0') # version info
mainPassword = input('What is your password?\n')
try:
with open('data.json', 'r') as file:
data = json.load(file)
password_data = data.get('main')
except IOError:
pass
if mainPassword == password_data: <--- <NameError>
None
else:
with open('data.json', 'w') as file:
json.dump('{"main":%s}' % (mainPassword), file)
print('Existing register overwritten! What would you like to do?')
# Main program
while True:
print("""
Commands:
-----------
1. Generate a new password
2. Get password
3. Quit program
""")
command = input('Please enter the command\n')
if command == 1:
label = input('Please enter a label for the password\n')
password = generate_password()
with open('data.json', 'a') as file:
json.dump('{%s:%s}' % (label, password), file)
elif command == 2:
get_label = input('Please enter the label of the password you want to access\n')
with open('data.json', 'r') as file:
data = json.load(file)
password = data.get(get_label)
print(password)
elif command == 3:
quit('Program exited')
错误:
Traceback (most recent call last):
File "c:\Users\raphp\Desktop\Python Projects\Password Manager\main.py", line 25, in <module>
if mainPassword == password_data:
NameError: name 'password_data' is not defined
尝试用以下内容替换您的Try块:
然后继续使用您自己的代码
可能发生的情况是,您有一个IOError,这意味着它永远不会点击您的密码\u数据初始化,这就是为什么它没有定义
相关问题 更多 >
编程相关推荐