如何使用pykeepass获取组中条目的UUID以区分同名同用户名的条目
如何使用pykeepass获取组中条目的UUID以区分同名同用户名的条目
你遇到的这个场景确实挺头疼的——当同一个组里存在标题和用户名完全一致的条目时,常规的find_entries方法根本没法区分它们。不过别担心,pykeepass的每个Entry对象本身就自带uuid属性,我们只需要遍历组内的条目,把UUID和原有信息整合输出就能解决问题啦。
直接看修改后的代码:
#!/usr/bin/env python3 from pykeepass import PyKeePass kp = PyKeePass('dbtest.kdbx', password='password') kpGroup = kp.find_groups(name='GroupTest', first=True) # 遍历组内条目,格式化生成包含UUID的信息列表 formatted_entries = [] for entry in kpGroup.entries: entry_info = f'Entry: "GroupTest/{entry.title} ({entry.username}) UUID={entry.uuid}"' formatted_entries.append(entry_info) print(formatted_entries)
运行这段代码后,你会得到类似这样的输出:
['Entry: "GroupTest/test (test@test.com) UUID=xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"', 'Entry: "GroupTest/test (test@test.com) UUID=yyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy"']
要是之后你需要精准定位某一条目,还可以用kp.find_entries(uuid='你要找的UUID', first=True)来直接获取,完全不会再出现混淆的情况。
备注:内容来源于stack exchange,提问作者tty0
相关产品推荐
相关产品推荐

