https://github.com/rlalpha49/line-counter
Line Counter: A Python script to count the number of lines in all files within a specified directory, with options to include or exclude certain files and extensions.
https://github.com/rlalpha49/line-counter
line-counter python python-script python3
Last synced: about 1 year ago
JSON representation
Line Counter: A Python script to count the number of lines in all files within a specified directory, with options to include or exclude certain files and extensions.
- Host: GitHub
- URL: https://github.com/rlalpha49/line-counter
- Owner: RLAlpha49
- License: mit
- Created: 2024-02-15T01:22:40.000Z (about 2 years ago)
- Default Branch: master
- Last Pushed: 2024-05-15T08:35:16.000Z (almost 2 years ago)
- Last Synced: 2025-01-13T03:41:28.535Z (about 1 year ago)
- Topics: line-counter, python, python-script, python3
- Language: Python
- Homepage:
- Size: 8.79 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Line Counter
This Python script counts the number of lines in all files within a specified directory, excluding or including
specified files and extensions.
## Installation
To install the script, you can clone the repository and run the script directly:
```bash
git clone https://github.com/yourusername/line-counter.git
cd line-counter
python main.py
```
## Making the Script Executable
The script can always be run by calling `python /path/to/main.py`, but you can make it executable so that you can run it
by typing `line-counter` or `line-counter.bat` into the terminal. Here's how you can do it:
### Unix-like Systems (Linux, macOS)
1. Make the script executable. You can do this by changing the permissions of the script file. Open a terminal, navigate
to the directory containing the script, and run the following command:
```bash
chmod +x main.py
```
2. Rename the script to line-counter (without the .py extension). You can do this with the following command:
```bash
mv main.py line-counter
```
3. Move the script to a directory that's on the system's PATH. The PATH is a list of directories that the system
searches through when looking for executables. You can move the script to /usr/local/bin, which is a common place to
put custom scripts:
```bash
sudo mv line-counter /usr/local/bin
```
Now, you should be able to run the script from anywhere by typing line-counter into the terminal.
### Windows
1. Add the directory containing the line-counter batch file to your system's PATH. Here's how you can do it:
- Right-click on 'Computer' and click on 'Properties'.
- Click on 'Advanced system settings'.
- Click on 'Environment Variables'.
- Under 'System Variables', find the 'Path' variable, select it, and click on 'Edit'.
- In the 'Variable value' field, append the full path to the directory containing the batch file.
Now, you should be able to run the script from anywhere by typing line-counter.bat into the command prompt, followed
by any arguments the script accepts.
To make the script executable as line-counter instead of line-counter.bat, you can create an alias in Windows:
1. Open a command prompt.
2. Run the following command:
```bash
doskey line-counter=line-counter.bat $*
```
Note: This alias will only be available in the current session. To make it permanent, you can add it to your user's
profile script. For example, you can add the doskey command to your user's profile script, which is located at C:
\Users\YourUsername\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1 for PowerShell or C:
\Users\YourUsername\Documents\profile.ps1 for Command Prompt.
## Usage
The script is intended to be run from the command line. It takes a directory to search, and optional arguments for files
or directories to include or exclude, and file extensions to include or exclude.
Here are the available command line arguments:
- `directory`: The directory to search. This is a required argument.
- `-i` or `--include`: Files or directories to include. This is an optional argument.
- `-ix` or `--include-extensions`: File extensions to include. This is an optional argument.
- `-e` or `--exclude`: Files or directories to exclude. This is an optional argument.
- `-ex` or `--exclude-extensions`: File extensions to exclude. This is an optional argument.
Note: Only one of `include` or `exclude`, and only one of `include-extensions` or `exclude-extensions` can be provided.
Files with no extensions are given the `.noext` extension by the script. This allows you to include or exclude such
files using the `--include-extensions` or `--exclude-extensions` arguments respectively.
## Examples
Here are some examples of how to use the script:
1. Count the lines in all files in a directory:
python main.py /path/to/directory
line-counter /path/to/directory
2. Count the lines in all files in a directory, excluding any files in the venv directory and any files with a .txt
extension:
python main.py /path/to/directory --exclude venv --exclude-extensions .txt
line-counter /path/to/directory -e venv -ex .txt
3. Count the lines in all Python files in a directory, including only files in the src directory:
python main.py /path/to/directory --include src --include-extensions .py
line-counter /path/to/directory -i src -ix .py
The script will then print the line counts for each file extension, sorted by the number of lines, and the total line
count.
## License
This project is licensed under the terms of the MIT license. See the [LICENSE](LICENSE) file for more information.