【问题标题】:Python: Imported file displaying old informationPython:显示旧信息的导入文件
【发布时间】:2017-05-26 08:11:05
【问题描述】:

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

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 是旧的用户密钥和密码,我在很多个月前删除了这些密钥并不断返回。 importlib.reload 没有区别。我错过了什么?

【问题讨论】:

  • 随便想想,有没有logins.pyc文件和b:你为什么要导入它?
  • @RolfofSaxony 找不到 .pyc 文件。我可能做错了什么,但我正在导入登录名,以便以一种简单的方式将新数据附加到现有信息中。
  • 除非 logins.py 中有代码,否则我不明白您为什么不将其作为文件打开并阅读内容。事实上,你已经打开它了,奇怪的是用 'w' 覆盖了整个文件。

标签: python python-import python-importlib


【解决方案1】:

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

编辑:我不确定如何准确地解决您的问题,但我必须提供更好的解决方案,原因如下:您正在导入一个文件,然后还打开该文件并写入它.这有点脏。尝试将这些内容存储在 csv 文件中。 python 使 csv 文件读/写变得非常容易,我想你会在路上欣赏它们。

【讨论】:

  • 正如我在原帖中提到的,你会发现所有你会发现是userkeys = [12345, 'aaa'] passkeys = ['67890', 'bbb'] ,这是故意的 - 只是不是数据!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-20
相关资源
最近更新 更多