【问题标题】:Python overwriting variable in script 1 with user input from script2Python 使用来自 script2 的用户输入覆盖脚本 1 中的变量
【发布时间】:2017-01-06 17:45:47
【问题描述】:

我已经为此苦苦挣扎了好几天,但我找不到任何与我正在尝试做的事情真正相关的答案,至少我找不到。

我正在尝试创建一个基本系统来跟踪我的财务状况(即现金、银行存款等)。我有两个脚本:display.py 和 edit.py。 这个想法是我可以轻松调出 display.py 并查看我有多少以及它在哪里,并使用 edit.py 更改 display.py 中显示的数量,而无需每次打开 Vi 或输入数字运行 display.py。

理论上,edit.py 会接受用户输入,然后用新输入覆盖显示中的值,这样显示就独立于编辑并保存这些值

display.py:

cash1 = "5.14"
bank1 = "none"

print "you have", cash1, "in your pocket"
print ""
print ""you have", bank1, "in the bank"

并在edit.py中使用它

f = open("display.py", "r")
contents = f.readlines()
f.close()
cashinput1 = "cash1"
cashinput2 = raw_input("enter the new coin amount: ")
cashtransfer =  ("=".join((cashinput1,cashinput2,)))
contents.insert(5, cashtransfer)
f = open("display.py", "w")
contents = "".join(contents)
f.write(contents)
f.close()

我知道 edit.py 不是很干净,但问题是它将输入添加到行尾,并将其推送到下一行。目标是覆盖 cash1,而不是添加另一个。我试过简单地导入,但这不起作用,因为没有保存更改。

tl;dr 如何使用来自另一个脚本的用户输入覆盖一个脚本中的变量? 我正在使用 Python 2.7.12

提前致谢。

编辑:Sqlite3 看起来是为这种类型的东西设计的,所以这个问题得到了回答。不知道如何在没有任何答案的情况下关闭它。

【问题讨论】:

  • 将信息直接存储在脚本中通常是个坏主意,更不用说修改源文件来完成这些了。也许如果您告诉我们您要做什么,我们可以推荐一种理智的方法。我怀疑您应该创建一个简单的数据库,甚至只是一个包含您的数据的 csv 文件(而不是 .py 文件)
  • 您可以将数据保存在文本文件中并根据需要进行修改。 edit 修改这个文件,display 显示它
  • 您应该考虑将其存储在文件中。然后两个应用程序都可以从所述文件中提取。如果你把它作为一个ini 文件来做,Python 有一个很好的内置库。
  • 嗯,我明白你的观点了。 @Suever 我想基本目标是在不打开编辑器的情况下编辑文件。正在尝试将这些合并到一个更大的程序中,因此编辑它不需要 Vi 或 Leafpad 之类的东西
  • @Nameless477 如上所述,将sqlite3 用于一个非常简单的数据库,您可以在其中存储数据尤其是,如果这将成为更大应用程序的一部分

标签: python input python-2.x


【解决方案1】:

正如我提到的 Sqlite3,我将使用它。再次感谢,问题已回答:)

【讨论】:

    猜你喜欢
    • 2019-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-18
    相关资源
    最近更新 更多