fs.mountfs

Contains MountFS class which is a virtual filesystem which can have other filesystems linked as branched directories.

For example, lets say we have two filesystems containing config files and resources respectively:

[config_fs]
|-- config.cfg
`-- defaults.cfg

[resources_fs]
|-- images
|   |-- logo.jpg
|   `-- photo.jpg
`-- data.dat

We can combine these filesystems in to a single filesystem with the following code:

from fs.mountfs import MountFS
combined_fs = MountFS()
combined_fs.mountdir('config', config_fs)
combined_fs.mountdir('resources', resources_fs)

This will create a single filesystem where paths under config map to config_fs, and paths under resources map to resources_fs:

[combined_fs]
|-- config
|   |-- config.cfg
|   `-- defaults.cfg
`-- resources
    |-- images
    |   |-- logo.jpg
    |   `-- photo.jpg
    `-- data.dat

Now both filesystems can be accessed with the same path structure:

print combined_fs.getcontents('/config/defaults.cfg')
read_jpg(combined_fs.open('/resources/images/logo.jpg')
MountFS.mountdir(self, path, fs)

Mounts a host FS object on a given path.

Parameters:
  • path – A path within the MountFS
  • fs – A filesystem object to mount
MountFS.mountfile(self, path, open_callable=None, info_callable=None)

Mounts a single file path.

Parameters:
  • path – A path within the MountFS
  • open_callable – A callable that returns a file-like object, open_callable should have the same signature as open()
  • info_callable – A callable that returns a dictionary with information regarding the file-like object, info_callable should have the same signagture as getinfo()
MountFS.unmount(path)

Unmounts a path.

Parameters:path – Path to unmount
Returns:True if a path was unmounted, False if the path was already unmounted
Return type:bool