Skip to content
/ Ren.py Public
generated from MFM-347/RepoLate

RenPy is a Python CLI tool for renaming files efficiently.

License

Notifications You must be signed in to change notification settings

MFM-347/Ren.py

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

6 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

RenPy: CLI & Library for Auto Renaming πŸš€

RenPy is a Python library and CLI tool designed to automate file renaming in a given directory. It sequentially renames files using a specified base name, appending a numeric index while preserving the original file extension.

πŸ“Œ Features

Feature Availability Description
Batch Rename βœ” Rename multiple files at once with a custom prefix.
Sorting Options βœ” Rename files in alphabetical, newest, or oldest order.
Simulation Mode βœ” Preview renaming changes without modifying files. No actual changes are made.
Library Support βœ” Use RenPy as a module in your Python scripts for automation.
Cross-Platform βœ” Works seamlessly on Windows, macOS, and Linux.

πŸ› οΈ Prerequisites

  • Python 3.x installed
  • Basic knowledge of command-line usage

πŸ“¦ Required Python Packages

RenPy requires the following package(s):

  • pyfiglet (for CLI banner text)

To install dependencies, run:

pip install -r requirements.txt  # Use pip3 on macOS

⚑ Installation

πŸ”Ή Install via Pip

To install RenPy as a library:

pip install renpy

πŸ”Ή Install from Source

To install and run the tool from the source code:

(git clone https://github.com/MFM-347/Ren.py.git
cd Ren.py
pip install .

πŸ’» CLI Usage

πŸ“Œ Run the CLI

renpy <base_name> <directory> [-r <order>] [-s]

Example

Rename files inside C:\Users\YourName\Documents\Folder, using "File" as the base name:

renpy "File" C:\Users\YourName\Documents\Folder

πŸ“‚ Given Directory (C:\Docs)

report.docx
notes.txt
summary.pdf

🏷️ Renaming Command

renpy "Document" C:\Docs -r alphabet

πŸ“ Output

Document-1.docx
Document-2.pdf
Document-3.txt

βš™οΈ Command-Line Options

Option Description
<base_name> Prefix for renamed files.
<directory> Path to folder containing the files.
-r, --order <order> Sorting order before renaming:
- alphabet β†’ A-Z order
- new β†’ Newest to oldest
- old β†’ Oldest to newest (default)
-s, --simulate Run a simulation without renaming files.
--case-sensitive Sorts filenames in case-sensitive mode.
--debug Enables debug logging.

πŸ“¦ Using RenPy as a Library

πŸ”Ή Installed Library Usage

If you have installed RenPy via pip, you can use it in your Python scripts as follows:

from renpy import renFn
from pathlib import Path

directory = Path("C:/Users/YourName/Documents/Folder")
renFn(base_name="Document", directory=directory, order="alphabet", simulate=False, case_sensitive=False)

πŸ”Ή Source Code Usage

If running directly from the cloned source repository:

from renpy import renFn
from pathlib import Path

directory = Path("C:/Users/YourName/Documents/Folder")
renFn(base_name="Document", directory=directory, order="alphabet", simulate=False, case_sensitive=False)

Sorting Files Only

If you only need to get sorted files without renaming:

from renpy import sortFn
from pathlib import Path

directory = Path("/path/to/files")
sorted_files = sortFn(directory, order="new", case_sensitive=True)
print(sorted_files)

Handling Errors Gracefully

You can wrap it in a try-except block:

try:
    renFn("Example", Path("/home/user/files"), "old", False, False)
except Exception as e:
    print(f"An error occurred: {e}")

πŸ§ͺ Running Tests (For Source Code Only)

Run all tests:

python -m unittest discover tests

Future Plans

  • Add option to rename only specific file type.
  • Add Graphic User Interface (GUI).

🀝 Contributing

We welcome contributions! Please check the CONTRIBUTING.md for guidelines.

πŸ‘¨β€πŸ’» Credits

Created and maintained by MFM-347.

πŸ“œ License

This project is licensed under the MIT License.

License MIT