保存一个程序的大输出数据以供另一个程序使用

时间:2018-06-08 11:57:51

标签: python python-3.x import

让我们在文件A.py中说,我通过一些冗长的过程来计算某个变量x的值,这样代码大约需要15-30秒才能执行。

我想在另一个程序x中使用B.py的值。

我曾考虑将x导入另一个文件B.py但是当B执行时,它会再次执行A以计算xB还需要1-2分钟才能执行,因此我只需使用输出x即可。我尝试将其置于if __name__ == "main"下,但我将如何计算x

此外,我已尝试将x的值复制到文本文件here,但x是一个非常大的列表(大约10000长度),因此输出只显示" ..."并且省略了大部分的打印。

2 个答案:

答案 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中调用该函数。