Coder Social home page Coder Social logo

darkarp / algorename Goto Github PK

View Code? Open in Web Editor NEW
0.0 2.0 0.0 21 KB

This utility is a Python script designed to rename files in a folder or an individual file by shifting each alphabetic character in the filenames to the left by 1.

License: MIT License

Python 100.00%

algorename's Introduction

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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.