让我们在文件A.py
中说,我通过一些冗长的过程来计算某个变量x
的值,这样代码大约需要15-30秒才能执行。
我想在另一个程序x
中使用B.py
的值。
我曾考虑将x
导入另一个文件B.py
但是当B
执行时,它会再次执行A
以计算x
。 B
还需要1-2分钟才能执行,因此我只需使用输出x
即可。我尝试将其置于if __name__ == "main"
下,但我将如何计算x
?
此外,我已尝试将x
的值复制到文本文件here,但x
是一个非常大的列表(大约10000长度),因此输出只显示" ..."并且省略了大部分的打印。
答案 0 :(得分:2)
我想你想使用pickle。
import pickle
very_long_list = [1,2,3]
file_name = "/tmp/very_long_list.pickle"
pickle.dump(very_long_list, open(file_name, "wb"))
del very_long_list
very_long_list = pickle.load(open(file_name, "rb"))
print(very_long_list) # prints [1,2,3], we did it!
答案 1 :(得分:0)
如果不需要运行A.py
除了生成x
(使用i B.py
)之外的任何其他原因,那么你只需要在名为x
的函数中返回compute_x()
的代码,然后在B.py
中编写from A import compute_x
并在B.py
中调用该函数。