Skip to main content

A powerful tool to organize files in directories based on their extensions.

Project description

File Organizer Tool

A powerful Python tool to organize files in directories based on their extensions. Features include dry-run preview, undo capability, recursive organization, and custom configuration.

Installation

pip install file-organizer-tool

For YAML config support:

pip install file-organizer-tool[yaml]

For development:

pip install file-organizer-tool[dev]

Quick Start

Command Line

# Basic usage - organize current directory
file-organizer-tool .

# Preview changes without moving files
file-organizer-tool /path/to/folder --dry-run

# Organize with detailed output
file-organizer-tool /downloads --verbose

# Organize subdirectories recursively
file-organizer-tool /messy-folder --recursive

# Undo the last organization
file-organizer-tool /organized-folder --undo

Python Script

from file_organizer_tool import organize_files

# Basic organization
result = organize_files("/path/to/directory")
print(result.summary())

# With options
result = organize_files(
    "/downloads",
    dry_run=True,
    verbose=True,
    recursive=True,
    on_conflict='rename'  # or 'skip', 'overwrite'
)

CLI Options

Option Short Description
--dry-run -n Preview changes without moving files
--verbose -v Show detailed output for each file
--recursive -r Organize files in subdirectories
--dest -d Custom destination directory
--config -c Path to custom config file (JSON/YAML)
--exclude -e Glob patterns to exclude
--on-conflict Handle duplicates: skip, rename, overwrite
--undo Undo previous organization
--log-file Path to write log file

File Categories

Files are organized into these categories by default:

  • images: jpg, png, gif, svg, webp, ico, etc.
  • documents: pdf, docx, txt, xlsx, md, csv, etc.
  • scripts: py, js, ts, sh, bat, go, rs, etc.
  • archives: zip, tar, gz, rar, 7z, etc.
  • videos: mp4, avi, mov, mkv, webm, etc.
  • audio: mp3, wav, flac, aac, ogg, etc.
  • data: json, xml, yaml, sql, db, etc.
  • fonts: ttf, otf, woff, woff2, etc.
  • executables: exe, msi, dmg, deb, apk, etc.
  • others: unrecognized extensions

Custom Configuration

Create a config.json or config.yaml:

{
    "projects": [".sln", ".csproj", ".xcodeproj"],
    "ebooks": [".epub", ".mobi", ".azw3"]
}

Use it:

file-organizer-tool /folder --config config.json

Development

# Clone and install
git clone https://github.com/albizzy/file_organizer
cd file_organizer
pip install -e ".[dev]"

# Run tests
pytest tests/ -v

# Run with coverage
pytest tests/ --cov=file_organizer_tool

License

MIT License - see LICENSE for details.

Author

Albert Mwasisoba (@albizzy)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

file_organizer_tool-2.0.0.tar.gz (12.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

file_organizer_tool-2.0.0-py3-none-any.whl (11.9 kB view details)

Uploaded Python 3

File details

Details for the file file_organizer_tool-2.0.0.tar.gz.

File metadata

  • Download URL: file_organizer_tool-2.0.0.tar.gz
  • Upload date:
  • Size: 12.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for file_organizer_tool-2.0.0.tar.gz
Algorithm Hash digest
SHA256 fe8cf0c5d551bcaf2178c134742f0d32e91b67f29ab7a7f9b6ee6cdd539415ee
MD5 77c7000e92b972e53ae0a5e19b81a059
BLAKE2b-256 60e3caba85d57398f58f7d83fc0a0829fba402610750ed72254121deebba67c4

See more details on using hashes here.

File details

Details for the file file_organizer_tool-2.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for file_organizer_tool-2.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1eacaab157baaeed32c7815fc3a4d1cd47d3a2a26ded0803da3f7b60e2f3128b
MD5 c3339b3639aee08cdeee22a7dd916d0f
BLAKE2b-256 b76d4b3edc346fdb4681c4c9ad063e9d9ea4fa61b7d562daa4fbbad51f979d16

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page