A simple package to walk a directory tree and collect files and sizes into a SQLite DB.


Keywords
system, tool, database
License
MIT
Install
pip install treewalker==0.1.9

Documentation

Treewalker

A simple package to walk a directory tree and collect files and sizes into a SQLite DB.

Usage

For simple (and most) use cases, simply install the package from PyPI:

pip install treewalker

And run it from the command line:

treewalker --help
treewalker --db test.sqlite --walk C:/temp

This is the preferred and recommended way to run Treewalker.

Usage and development

Get started (change directory to where you want the project first):

pip install treewalker

Run the script with your own .json configuration:

python treewalker.py --cfg my_config.json
{
    "database": "test.sqlite",
    "walk": "c:/temp"
}

Or run the script entirely from the command line:

python treewalker.py --db test.sqlite --walk c:\temp

Or build a single file executable if you need this to run on Windows systems that won't have Python pre-installed:

scripts/build_pyinstaller.bat c:/target/folder
scripts/build_pyinstaller_xp.bat c:/target/folder

This creates a treewalker.exe, which can be run 'anywhere':

.\treewalker.exe --db test.sqlite --walk c:\temp

Note that the executable will be limited to running on systems that support the version of Python you're using to build it. I.e. for Windows XP (32-bit or 64-bit), the very latest version of Python you can use is 3.4.4.

Getting at the data

You can easily access the contents of any of the sqlite files:

from sqlite3 import connect

conn = connect('test.sqlite')
c = conn.cursor()
# show all the root directories
print(c.execute('SELECT * FROM dirs WHERE parent_dir<0').fetchall())
# show all files that have "test" in their name (case-insensitive)
print(c.execute('SELECT * FROM files WHERE name LIKE "%test%"').fetchall())

Look at the documentation of the Python standard sqlite3 library for more examples. https://docs.python.org/3/library/sqlite3.html and at the documentation of Treewalker at https://treewalker.readthedocs.io