Francesc Altet wrote:
> A Monday 24 September 2007, Francesc Altet escrigué:
>> A Monday 24 September 2007, Michael Hoffman escrigué:
>>> Perhaps it would still take the same time over the whole file, but
>>> I think that by doing a depth-first search I can get to the first
>>> Leaf more quickly.
>>>
>>> This is important in two scenarios. First, sometimes I just need to
>>> get a single array, and it doesn't matter which one. Secondly, it
>>> is more reassuring to users (and even myself) to be able to print
>>> progress reports as the file is loading.
>> Mmm, I don't know if I understand you well, but perhaps using a
>> combination of File.getNode and File.{iterNodes, listNodes} (or its
>> Group.{_f_iterNodes, _f_iterNodes} counterparts) could help you avoid
>> reinventing the wheel?
Thanks for the suggestion. This is what I ended up doing:
def walk_nodes(h5file, classname="Array"):
for group in h5file.root._v_groups.itervalues():
for node in group._f_walkNodes(classname):
yield node
> Thinking a bit more into this problem, perhaps you can get the access to
> node metainfo faster if you create a table with several fields
> (pathname, node_class and others) and populate it. Then, for accessing
> the metainfo you are interested in, you only have to read this table,
> which is a very fast operation. Of course, you have to be careful and
> synchronize the table data with the actual metadata of nodes each time
> it changes on disk; however, if your data is mostly read-only then
> this is not a relevant issue.
I thought about doing this, but I think the performance is acceptable
with the code I put above which is a bit more convenient than trying to
maintain my metadata separately.
Thanks again!
--
Michael
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Pytables-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/pytables-users