This module is designed to relief and simplify interaction of your python modules with the file system.
python setup.py install
or
pip install -e .
or
pip install fs-manager
For example, you can inherit your class from FSManager
class
from fs_manager import FSManager class Foo(FSManager, ...): FSManager.__init__(self, base_path="/some/base", mode=0o744, temporary=True) ...
Or you can just use it as an object
from fs_manager import FSManager with FSManager(base_path="/tmp/base", mode=0o744, temporary=True) as fsm: fsm.mkdir(alias="tom", path="tom_dir", mode=0o744, temporary=True) fsm.cd("tom") fsm.mkdir("tom_dir") fsm.mkfile("jerry", "jerry_file", 0o644, True) fsm.ls() fsm.up() fsm.ls() fsm.rm("tom")
Save what you did
from fs_manager import FSManager with FSManager(base_path="/tmp/base", mode=0o744, temporary=True) as fsm: fsm.mkdir(alias="tom", path="tom_dir", mode=0o744, temporary=True) fsm.cd("tom") fsm.mkdir("tom_dir") fsm.mkfile("jerry", "jerry_file", 0o644, True) fsm.ls() fsm.save_all() ... shutil.copy("/tmp/base/.fs-structure-full.json", "/tmp/another_base/.fs-structure-full.json") ... with FSManager(base_path="/tmp/another_base", mode=0o744, temporary=True) as fsm: fsm.load_all()
Structure will be saved at root to ".fs-structure-full.json". But structure
saves automatically when temporary=False
. So if you initialize
from the same directory, structure loads anyway.
Initialize you fs-manager from the directory on your disk
from fs_manager import FSManager with FSManager(base_path="/tmp/base", mode=0o744, temporary=False) as fsm: fsm.snappy(root_binded=True) fsm.cd("some/path")
Thus, if root_binded=True
your structure will be initialized from one root.
In other words, you'll be able to cd
right from the root fs-manager object.
Also you can verify hashsum of files under any prefix like that
from fs_manager import FSManager with FSManager(base_path="/tmp/base", mode=0o744, temporary=False) as fsm: fsm.snappy(root_binded=True) fsm.cd("some/path") fsm.save_hashsums("sha1") ... mismatches = fsm.check_hashsums(type="sha1", log_warnings=False)
There is much more inside :)