26 def __init__(self, filename):
28 Open a root file and read its header
32 self.rootfile = open(filename,
'rb')
33 root = self.rootfile.read(4)
35 raise Exception(
"%s is not a root file" % filename)
37 self.version = int.from_bytes(self.rootfile.read(4), byteorder)
39 self.large = (self.version >= 1000000)
41 self.wordlen = 8
if self.large
else 4
43 self.begin = int.from_bytes(self.rootfile.read(4), byteorder)
45 self.end = int.from_bytes(self.rootfile.read(self.wordlen), byteorder)
47 self.seekfree = int.from_bytes(self.rootfile.read(self.wordlen), byteorder)
49 self.nbytesfree = int.from_bytes(self.rootfile.read(4), byteorder)
51 self.nfree = int.from_bytes(self.rootfile.read(4), byteorder)
53 self.nbytesname = int.from_bytes(self.rootfile.read(4), byteorder)
55 self.units = int.from_bytes(self.rootfile.read(1), byteorder)
57 self.compress = int.from_bytes(self.rootfile.read(4), byteorder)
59 self.seekinfo = int.from_bytes(self.rootfile.read(self.wordlen), byteorder)
61 self.nbytesinfo = int.from_bytes(self.rootfile.read(self.wordlen), byteorder)
63 self.uuid = self.rootfile.read(18)
66 self.header = self.rootfile.read(self.begin)
67 self.rootfile.seek(self.begin)