gpt4 book ai didi

python - 为什么我无法在不同的模块中加载pickle?

转载 作者:太空宇宙 更新时间:2023-11-03 15:19:44 26 4
gpt4 key购买 nike

我在 module1 中创建了一个名为 tabla_precios 的 pickle,我期待在 module2 中打开它。pickle 在 module1 中的函数中打开。

目前我正在 module2 中导入该函数,但我相信这不是最有效的方法,因为我认为每次在不同的模块中执行该模块时我都会制作pickle,不是吗?

因此我考虑将 pickle 直接导入到不同的模块中,但我不确定如何做到这一点。

这是我尝试过的:

import pandas as pd
import pickle

main_df=pd.DataFrame()

pickle_out=open ('tabla_precios.pickle','wb')
pickle.dump(main_df,pickle_out)
pickle_out.close()

print(tabla_precios)

出现错误:

name 'tabla_precios' is not defined

我期待在不同的模块中导入pickle。

最佳答案

pickle 仅存储对类和函数的引用,而不存储函数本身。如果您 p​​ickle 一个类,则当您 unpickle 时,该类定义需要位于命名空间中。 python 中的模块仅导入一次,然后保存在 sys.modules 中。重新导入该模块不会导致代码被执行多次。要测试它,请尝试在模块中添加 print 语句,并查看它是否被多次调用。

关于python - 为什么我无法在不同的模块中加载pickle?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43628336/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com