2

我正在尝试TFile通过 rootpy 将 python 类(或只是成员)存储在 ROOT 文件(CERN,)中。

Tree我可以使用 a和 a轻松做到这一点,TreeModel但这仅适用于基本类型,不会产生我正在寻找的结构。我也快速浏览了一下,rootpy.io.pickler但不允许使用 a 进行检查TBrowser(它崩溃了)。

我想知道是否有更好的方法。我想拥有什么

我的文件:

  • 我选择的目录
    • 带有我的对象名称的目录
    • 对象基本类型(int、float、string)
    • 直方图(这很容易)
    • 其他复杂对象

如您所见,这不能用 a 来实现,Tree而且我不知道如何将基本类型添加到 aDirectory中。有任何想法吗?

如果可能的话,我想避免将对象参数存储在树中并将直方图直接存储在同一Directory.

4

1 回答 1

1

我唯一的想法是在你的 TFile 中创建你想要的 TDirectory 并将内容添加到这个目录中。直方图很容易。基本类型可以存储在树中。对于其他复杂的对象,您可以查看pickle。然后可以将序列化的对象(即pickle_string = pickle.dumps(Foo))作为字符串存储在树中,而无需通过 TBrowser 进行检查。这在没有 rootpy 的情况下工作,只需使用 PyROOT。我希望这可能会有所帮助。

于 2015-10-14T16:36:40.830 回答