我正在尝试制作一个密码管理器...并且它会不断清除字典,然后在您尝试添加新密码时添加密钥。

q1 = input("yes/no: ")                                                                                                                                                                            
    if q1 == "yes":                                                                                                                                                                                   
        print("please make vault password?")                                                                                                                                                          
        pass = getpass.getpass(prompt='Password:', stream=None)                                                                                                                                      
        with open("src/o", "wb") as op:                                                                                                                                                               
            q2 = input("website used on: ")                                                                                                                                                           
            o[q2] = p                                                                                                                                                                                 
            print(o)                                                                                                                                                                                  
            o = pickle.dump(o,op,protocol=2)                                                                                                                                                          
        with open("src/o", "br") as opp:                                                                                                                                                              
            print(pickle.load(opp))

#1楼 票数:0

您每次都会覆盖您的腌制对象。 另外,您的代码逻辑有些混乱。 请尝试以下操作:

q1 = input("yes/no: ")
if q1 == "yes":

  # get user info
  print("please make vault password?")
  given_website = input("website used on: ")   
  given_pass = getpass.getpass(prompt='Password:', stream=None) 

  # open the vault
  with open("src/o", "br") as vault:
    o = pickle.load(vault) 
    # store the new data in the vault
    o[given_website] = given_pass

  # close the vault
  with open("src/o", "wb") as vault:
    pickle.dump(o, vault, protocol=2)

  ask by fro9 epicness translate from so

未解决问题?本站智能推荐:

2回复

磁盘空间-Python字典与列表

我被要求创建一个倒排索引并以多种方式(使用和不使用压缩)保存其二进制文件。 长话短说,我注意到使用dict表示形式要比转换成list少得多的磁盘空间。 样品: 如果您同时检查两个文件的大小,则会发现差异。 因此,我愿意知道它们之间的差异以及原因。 任何其他信息将不胜感
1回复

在pickle字典中检索单个对象的问题(Python 3)

我的程序存储“食物”对象,这些对象被腌制到字典中并存储在充当数据库的 csv 文件中。 我想根据命令从字典中检索单个食物对象,但是当我尝试时,我似乎只检索字典中的最后一个对象。 控制台输出:香蕉重 5.0 盎司,含有 120.0 卡路里,可保鲜 3.0 天。 120.0 {'apple':
1回复

无法分配全局字典参数

我试图在pickle对象中加载数据文件,但是当它加载时,它分配给新参数,引用内存不同,我找不到将其分配给全局字典参数的方法 模块.py import pickle path2file='c:\file' Objects={} def loadPickle(): global Objects
1回复

当我尝试解开字典时出现“ AttributeError:”

我已经在python 3.5上编写了一个程序,您可以找出链接到用户名的密码,为现有用户创建新密码,然后向字典中添加新用户和密码,然后对其进行腌制,因此每次我加载程序时,用户名和密码将在那里。 出现的错误是在创建pickle文件之后(第一次运行它),然后在第6行出现了错误 发生。
2回复

酸洗字典继承的类缺少内部值

我已经使用了一些代码,显然失败的原因是当设置'wham'该值是TestDict类的另一个实例,只要我不尝试对其进行腌制和腌制,它就可以正常工作。 因为如果我做self.test丢失。 追溯: 编码: 如果不替换__setitem__和__getitem__ ,代码可以工
1回复

Python3在pickle中查找功能数量

我读了这个问题,它适用于 Python 2, Number of features in dictionary 然后我按照这个问题的解决方案,但它不起作用, TypeError: 'dict_keys' object does not support indexing 如何找到每个泡菜对象中的特
1回复

在python 3.1.1中解开python 2.6对象

在python 2.6中,我定义了一个Abc类,将字典d定义为键d是字符串,值是abc对象。 然后我将这个字典转储到了一个文件中-pickle.dump(d,open('filename.pkl','wb')) 我可以用python 2.6成功加载它 (d1与d相同) 但是
1回复

在 Python 中的文本文件中保存多个用户输入

我对 Python 相当陌生,正在尝试这个项目。 我需要将用户名和密码存储在文本文件中(以创建数据库)。 我用过pickle模块。 每次运行代码时,我尝试过的代码都会删除以前存储的数据。 我知道我必须将数据附加到文件而不是写入文件,但我不知道如何。 如何更正代码?