2017-05-26 60 views
0

当然,这并不像我想要的那样复杂。我有一个存储用户凭证的文件,我们将其称为logins.py。我的主要脚本app.py将新帐户详细信息写入logins.py的列表userkeyspasskeys。在写入新信息之前,要将新信息附加到凭证文件app.py必须导入logins.py。问题是,当我这样做时,旧的信息被写入文件 - 前一段时间我擦除的列表中的项目。幽灵般的。下面是我的一些代码:Python:导入的文件显示旧信息

import logins 
def createAccount(self, userkey, passkey): 
    if userkey in logins.userkeys: 
     return False 
    else: 
     logins.userkeys.append(userkey) 
     logins.passkeys.append(passkey) 
     with open('logins.py', 'w') as f: 
      f.write(str(logins.userkeys + logins.passkeys)) 

如果我输入的aaa一个用户钥和bbb一个密钥我得到

userkeys = [12345, 'aaa'] 
passkeys = ['67890', 'bbb'] 

12345和67890是老userkeys和口令的,我前抹去许多卫星是守回来了。 importlib.reload没有区别。我错过了什么?

+0

只是一个想法,就是有一个logins.pyc文件和b:你为什么要进口呢? –

+0

@RolfofSaxony找不到.pyc文件。我可能做错了什么,但我正在导入登录信息,以简单的方式将新数据附加到已有信息。 –

+0

除非在logins.py中有代码,否则我不明白为什么你不会将它作为文件打开并读取内容。事实上,你已经打开它,奇怪的是'W',所以你覆盖整个文件。 –

回答

0

我们可以看到logins.py的内容?

编辑:我不知道如何解决你的问题到底如何你想,但我将不得不提供更好的解决方案,并继承人为什么:你导入一个文件,然后也打开该文件并写入它。这有点肮脏。尝试将这些内容存储在csv文件中。 python使得csv文件的读取/写入非常容易,我想你会欣赏它们。

+0

正如我在原始文章中提到的,你会发现'userkeys = [12345,'aaa'] passkeys = ['67890','bbb']',这是故意的 - 不是数据! –

+0

我会试一试CSV,谢谢! –

+0

没问题,祝你好运 – Mauricio