A Python script to scan a directory for files with specified extensions, ignoring selected folders, and count:
- Number of matching files
- Total lines across all matching files
- Total characters across all matching files
- Prompts the user to enter file extensions (e.g., py, js, txt).
- Prompts for directory names to ignore (e.g., node_modules, venv).
- Recursively scans the current working directory using simple BFS traversal.
- Displays statistics for each extension provided.
pipx install adityas-fsscan
$ fsscan
Current working directory: /Users/attaditya/projects/code-analyzer
Enter file extensions to scan:
Please avoid leading dots (e.g., write 'py' instead of '.py').
> py
> js
>
Enter directories to ignore (optional):
Please avoid leading slashes (e.g., write 'node_modules' instead of '/node_modules').
> node_modules
>
Data for py:
Files: 12
Lines: 1893
Chars: 55120
Data for js:
Files: 8
Lines: 1104
Chars: 30792
.
├── main.py # Entry point
├── count_data.py # Contains CountData dataclass
├── file_scanner.py # scan_files() implementation
Python 3.8+
(No external dependencies required)