Skip to main content

A utility to change file names based on algorithms.

Project description

AlgoRename

Build Status GitHub release License

Table of Contents

Introduction

This utility is a Python script designed to rename files in a folder or an individual file based on a dynamically loaded algorithm. It utilizes multiprocessing for efficiency and can operate recursively on directories. The example algorithm shifts each alphabetic character in the filenames to the left by 1.

Prerequisites

  • Python 3.6+

Installation

  1. Clone the GitHub repository.
    git clone https://github.com/darkarp/algorename.git
    
  2. Navigate to the project directory.
    cd algorename
    
  3. Install the required Python packages.
    pip install -r requirements.txt
    

Usage

Command Line Arguments

  1. To rename a single file:
python algorename.py -f [path/to/your/file]
  1. To rename all files in a directory:
python algorename.py -d [path/to/your/directory]
  1. To rename files recursively in a directory:
python algorename.py -d [path/to/your/directory] -r
  1. For silent mode (suppress errors):
python algorename.py -s (...)
  1. To not create a log file:
python algorename.py -nl (...)
  1. To use a specific algorithm:
python algorename.py -a [algorithm_name]
  1. To list available algorithms:
python algorename.py -l
  1. For help:
python algorename.py -h

Algorithm Loading

The script supports loading custom algorithms. Place your algorithm module under the algorithms/ folder, and the script will be able to import it dynamically. Make sure to define a function called apply_algorithm within the module.

The environment variable FCLOG_PATH specifies the directories where the script will look for custom algorithm modules. You can modify this by changing your environment variables or by creating a .env file.

Example:

  • Windows: FCLOG_PATH=C:\path\to\algorithms;D:\another\path\to\algorithms
  • Linux/Mac: FCLOG_PATH=/path/to/algorithms:/another/path/to/algorithms

Algorithm Listing

You can list all available algorithms along with their metadata using the -l flag. This is useful for understanding what each algorithm does before using it.

Multiprocessing

This utility uses multithreading to efficiently rename multiple files in a directory. It uses concurrent.futures.ThreadPoolExecutor to speed up the renaming tasks.

Logging

Logging is implemented with a rotating log file mechanism to ensure that it doesn't consume too much disk space over time. The log file will be generated in the same directory as the script, named algorename.log.

  • You can set the logging verbosity level via an environment variable FCLOG_LEVEL, which accepts values like DEBUG, INFO, WARNING, ERROR, and CRITICAL.
  • You can set the log file name via an environment variable FCLOG_NAME. This name will be converted to lower-case.
  • You can disable logging by specifying -nl argument.

License

This project is licensed under the MIT License - see the LICENSE.md file for details.

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

algorename-1.6.tar.gz (7.9 kB view details)

Uploaded Source

Built Distribution

algorename-1.6-py3-none-any.whl (9.1 kB view details)

Uploaded Python 3

File details

Details for the file algorename-1.6.tar.gz.

File metadata

  • Download URL: algorename-1.6.tar.gz
  • Upload date:
  • Size: 7.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.1

File hashes

Hashes for algorename-1.6.tar.gz
Algorithm Hash digest
SHA256 2ea29a501f1d84accfd37be9e63faaf6aa2094e4ab6559d65983dc720f77ae8a
MD5 d112326e3bd591c252a945b432e86825
BLAKE2b-256 4ccaadac426bedcfa0218152b85f8ca98cc913eeb6ff24d05c4746ff1b67c202

See more details on using hashes here.

File details

Details for the file algorename-1.6-py3-none-any.whl.

File metadata

  • Download URL: algorename-1.6-py3-none-any.whl
  • Upload date:
  • Size: 9.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.1

File hashes

Hashes for algorename-1.6-py3-none-any.whl
Algorithm Hash digest
SHA256 0e596e915823e23efdcc64a52ce47cd14fe75428ed81c4642b7057defbf2a0ea
MD5 bd0b33dd3f657dd5e691c83ed30f0b7f
BLAKE2b-256 2d000c2a36bac2e2367e1682c0aa1533a243d6f2bae315eb0fb5c246a9329291

See more details on using hashes here.

Supported by

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