我试图通过rootpy在一个ROOT文件(CERN,TFile
)中存储一个python类(或者只是成员)。
我可以使用Tree
和TreeModel
轻松完成此操作,但这仅适用于基本类型,并且不会产生我正在寻找的结构。
我还快速查看了rootpy.io.pickler
,但这不允许使用TBrowser
进行检查(崩溃)。
我想知道是否有更好的方法。我想拥有什么
我的档案:
如您所见,使用Tree
无法实现这一点,我不知道如何将基本类型添加到Directory
。有什么想法吗?
如果可能的话,我想避免将对象参数存储在树中并将直方图直接存储在同一Directory
中的逻辑解决方法。
答案 0 :(得分:1)
我唯一的想法是在你的TFile中创建你想要的TDirectory并将内容添加到这个目录。直方图很容易。基本类型可以存储在树中。对于其他复杂对象,您可以查看pickle。然后,序列化对象(即pickle_string = pickle.dumps(Foo)
)可以作为字符串存储在树中,而不会通过TBrowser中断检查。只使用PyROOT,这没有rootpy。我希望这可能有所帮助。