Python 3.7 - 保存并导入包含 Python 个变量的文件
Python 3.7 - Save and import a file holding Python variables
这似乎是一个很好的 obvious/dumb 问题,但有一些规范使这个问题变得有点困难。
假设我有一个程序,它从用户那里获取 3 个数字,并对它们进行数学处理以获得输出。然后我 open("file", "r")
将这些变量写入文件。
然后,让我们假设另一个程序然后 import
s 它们并将它们用于其他进程。我需要能够将 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 是一种糟糕(非常糟糕)的做法,我建议不要使用它,除非您找不到其他解决方案
这似乎是一个很好的 obvious/dumb 问题,但有一些规范使这个问题变得有点困难。
假设我有一个程序,它从用户那里获取 3 个数字,并对它们进行数学处理以获得输出。然后我 open("file", "r")
将这些变量写入文件。
然后,让我们假设另一个程序然后 import
s 它们并将它们用于其他进程。我需要能够将 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 是一种糟糕(非常糟糕)的做法,我建议不要使用它,除非您找不到其他解决方案