Skip to content

Directory Scanning

Basic scan with pretty output:

from filoma import probe
analysis = probe('.')
analysis.print_summary()  # Rich table with key metrics

Full detailed report:

analysis.print_report()  # Includes extensions, common folders, empty folders

Access data programmatically:

print(analysis.summary)  # Summary statistics dict
print(list(analysis.file_extensions.items())[:5])  # Top extensions
print(analysis.top_folders_by_file_count[:3])  # Largest folders

Limit depth & hide progress:

analysis = probe('.', max_depth=3, show_progress=False)

Select backend explicitly (rarely needed):

from filoma.directories import DirectoryProfiler, DirectoryProfilerConfig
DirectoryProfiler(DirectoryProfilerConfig(search_backend='fd')).probe('.')

Fast path only (paths without metadata):

from filoma.directories import DirectoryProfiler, DirectoryProfilerConfig
fast = DirectoryProfiler(DirectoryProfilerConfig(fast_path_only=True)).probe('.')

Network tuning example:

DirectoryProfiler(DirectoryProfilerConfig(network_concurrency=32, network_timeout_ms=2000)).probe('/mnt/nfs')

Common flags:

  • max_depth: limit recursion.
  • search_hidden: include dotfiles.
  • follow_links: follow symlinks.
  • fast_path_only: skip metadata.

Inspect raw structure (dict-like):

print(analysis['summary'])
print(list(analysis['file_extensions'].items())[:5])