Python 3.7 - 保存并导入包含 Python 个变量的文件

Python 3.7 - Save and import a file holding Python variables

这似乎是一个很好的 obvious/dumb 问题,但有一些规范使这个问题变得有点困难。

假设我有一个程序,它从用户那里获取 3 个数字,并对它们进行数学处理以获得输出。然后我 open("file", "r") 将这些变量写入文件。

然后,让我们假设另一个程序然后 imports 它们并将它们用于其他进程。我需要能够将 file 导入为 Python 代码。明确一点:我不是在保存文本,我是在将 python 代码保存到一个不是 .py 文件的文件中。

有没有什么方法可以将 Python 代码保存到非 .py 文件中或从非 .py 文件中导入代码?又如何?

编辑: 在我保存和导入的文件中,我还保存了 Python 函数。我不能简单地保存变量本身;我需要将变量名称、值和 python 函数保存为文件中的普通文本,但是当我导入文件时,它应该被解析为 Python 代码。

将计算结果存储为代码然后从其他地方导入它可能不是一个好主意。您应该使用适当的数据格式来存储结果 - 并将其作为数据导入。使用 JSON 或 pickle 等

但是,如果您确实想搬起石头砸自己的脚,Python 会为您提供工具:

假设我在文件中有一些代码temp.txt

number3=30

def f():
    return 'method'

那么你可以这样做:

with open('temp.txt') as f:
    code = f.read()
    exec(code)

print(number3)
print(f())

输出:

30
method

如果我做对了,这可以通过 eval 函数完成,例如您将所有要执行的代码保存到一个字符串中,然后保存到一个文件中。

当你需要执行读取文件时,tke 字符串并评估它

但是我必须说,使用 eval 是一种糟糕(非常糟糕)的做法,我建议不要使用它,除非您找不到其他解决方案