PyTables User's Guide: Hierarchical datasets in Python - Release 1.3.3
Prev |  | Next

# Chapter 6. FileNode - simulating a filesystem with PyTables

# 6.1. What is FileNode?

`FileNode` is a module which enables you to create a `PyTables` database of nodes which can be used like regular opened files in Python. In other words, you can store a file in a `PyTables` database, and read and write it as you would do with any other file in Python. Used in conjunction with `PyTables` hierarchical database organization, you can have your database turned into an open, extensible, efficient, high capacity, portable and metadata-rich filesystem for data exchange with other systems (including backup purposes).

Between the main features of `FileNode`, one can list:

- Open: Since it relies on `PyTables`, which in turn, sits over HDF5 (see []), a standard hierarchical data format from NCSA.

- Extensible: You can define new types of nodes, and their instances will be safely preserved (as are normal groups, leafs and attributes) by `PyTables` applications having no knowledge of their types. Moreover, the set of possible attributes for a node is not fixed, so you can define your own node attributes.

- Efficient: Thanks to PyTables' proven extreme efficiency on handling huge amounts of data. FileNode can make use of PyTables' on-the-fly compression and decompression of data.

- High capacity: Since PyTables and HDF5 are designed for massive data storage (they use 64-bit addressing even where the platform does not support it natively).

- Portable: Since the HDF5 format has an architecture-neutral design, and the HDF5 libraries and PyTables are known to run under a variety of platforms. Besides that, a PyTables database fits into a single file, which poses no trouble for transportation.

- Metadata-rich: Since PyTables can store arbitrary key-value pairs (even Python objects!) for every database node. Metadata may include authorship, keywords, MIME types and encodings, ownership information, access control lists (ACL), decoding functions and anything you can imagine!

Prev | Home | Next
Complementary modules | Up | Finding a FileNode node