๐Ÿ filefrag for python

Spent last night making this, added some turd polish today and added it to pypi.

๐Ÿคท what?

I wanted to get file fragmentation info so I can punch holes in files, aligned with memory pages. But I really didnโ€™t want to parse filefragโ€™s outputs, so I wrote a python version with a friendly API and a command line that can produce json.

It only works on Linux as it depends on the FIE interface, but pull requests welcome.

โš’๏ธ how?

See the video for a demo including installing from source, but you can install with pip:

pip install filefrag

Then run pyfilefrag on the command line. See --help for details. It has --verbose, and --json outputs for your parsing pleasure.

To use the library, just call filefrag.FileMap('/path/whatever') to build a map of the extents in the file using ioctlโ€™s interface. Then you can poke about in the guts of a file:

Comes with a Device class to do comparisons, so it ought to work with fragments in files on different mountpoints, bind mounts and so on (unfortunately not snapโ€™s FUSE mounts; theyโ€™re far too abstract and piped in via a socket)

๐ŸŒ where?