- 用户可以添加、编辑和删除密码条目;
- 每个密码条目应该包括一个名称、一个用户名和一个密码;
- 用户可以搜索特定的密码条目;
- 用户可以通过导出密码条目为文件的方式备份其密码数据;
- 用户可以通过导入从备份文件中恢复其密码数据。
代码如下:
import json
def add_entry(entries):
name = input("Name: ")
username = input("Username: ")
password = input("Password: ")
entry = {"name": name, "username": username, "password": password}
entries[name] = entry
def edit_entry(entries):
name = input("Name: ")
if name in entries:
entry = entries[name]
print(f"1. Name: {entry['name']}")
print(f"2. Username: {entry['username']}")
print(f"3. Password: {entry['password']}")
choice = int(input("What do you want to edit? "))
if choice == 1:
new_name = input("New name: ")
entries[new_name] = entries.pop(name)
elif choice == 2:
new_username = input("New username: ")
entry['username'] = new_username
elif choice == 3:
new_password = input("New password: ")
entry['password'] = new_password
else:
print("Entry not found.")
def delete_entry(entries):
name = input("Name: ")
if name in entries:
del entries[name]
else:
print("Entry not found.")
def search_entry(entries):
keyword = input("Keyword: ")
results = []
for name, entry in entries.items():
if keyword in name or keyword in entry['username'] or keyword in entry['password']:
results.append(entry)
if results:
print(f"Found {len(results)} entries:")
for entry in results:
print(f"Name: {entry['name']}")
print(f"Username: {entry['username']}")
print(f"Password: {entry['password']}")
else:
print("No entries found.")
def export_entries(entries):
filename = input("Filename: ")
with open(filename, 'w') as f:
data = json.dumps(entries)
f.write(data)
def import_entries():
filename = input("Filename: ")
with open(filename, 'r') as f:
data = f.read()
entries = json.loads(data)
return entries
def print_menu():
print("1. Add entry")
print("2. Edit entry")
print("3. Delete entry")
print("4. Search entry")
print("5. Export entries")
print("6. Import entries")
print("7. Quit")
def main():
entries = {}
while True:
print_menu()
choice = int(input("Choose an option: "))
if choice == 1:
add_entry(entries)
elif choice == 2:
edit_entry(entries)
elif choice == 3:
delete_entry(entries)
elif choice == 4:
search_entry(entries)
elif choice == 5:
export_entries(entries)
elif choice == 6:
entries = import_entries()
elif choice == 7:
break
else:
print("Invalid option.")
if __name__ == '__main__':
main()