A text character and word counter tool with a GUI and CLI.
Project description
character counter
a powerful python script and desktop utility to count characters, words, sentences, lines, paragraphs, and estimated pages. features a rich, multi-tab tkinter gui with advanced text metrics and full cli support.
features
1. advanced text metrics
- readability indices: flesch reading ease & flesch-kincaid grade level with educational grade interpretations.
- speech & timing estimates: reading time (at 200 wpm) and speaking time (at 130 wpm) formatted nicely.
- keyword density analysis: lists top 5 content-bearing keywords (excluding common english stopwords).
- character frequency distribution: tracks the most frequently used alphanumeric characters.
2. redesigned gui (tkinter)
- multi-tab notebook layout:
- overview: standard grid of layout cards showing basic counts and page estimations.
- readability & timing: detailed cards for reading ease levels and verbal/silent time tracking.
- keywords: lists the top keywords side-by-side with a dynamic, custom canvas-drawn density bar chart.
- character frequency: displays top characters side-by-side with a dynamic frequency bar chart.
- dark mode toggle: instantly switch between high-contrast light and low-strain dark themes.
- text formatting toolbar: selection-aware uppercase, lowercase, title case, sentence case, and whitespace cleaning converters.
3. command-line interface
- json formatting: output all metrics as structured json using
--jsonor-j. - specific metric filtering: filter output to print only words, characters, readability, or sentences.
- regex querying: search for and count custom strings or regular expressions via
--query/-q.
usage
gui mode
run the script with no arguments to open the gui:
python3 src/main.py
cli mode
run with --cli or -c to force use in the terminal:
python3 src/main.py --cli
examples:
- analyze a file:
python3 src/main.py path/to/file.txt
- pipe text directly:
echo "some text to analyze" | python3 src/main.py
- get json output:
python3 src/main.py --json path/to/file.txt
- extract only specific metrics (e.g. words & lines):
python3 src/main.py --words --lines path/to/file.txt
- count regex pattern occurrences:
python3 src/main.py --query "[a-z]+ing" --regex path/to/file.txt
requirements
- python 3
- tkinter (built-in)
- collections, json, math, re, argparse (built-in standard library)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file character_counter_maaren-0.1.0.tar.gz.
File metadata
- Download URL: character_counter_maaren-0.1.0.tar.gz
- Upload date:
- Size: 12.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3050a11e802c5b83d64b098db68759d540a7dd4326fd6e43dcbb28251abbcd97
|
|
| MD5 |
c7d872566931084062d6d7b1679f5c86
|
|
| BLAKE2b-256 |
512981d8404d0efb4d7b894400c32ab6f8eeae80ef3eba368ec7296d143e46c7
|
File details
Details for the file character_counter_maaren-0.1.0-py3-none-any.whl.
File metadata
- Download URL: character_counter_maaren-0.1.0-py3-none-any.whl
- Upload date:
- Size: 12.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dacac90ca71f817f720da4f918c1caeb686713067dc4eed7c6661c8b0c760f9a
|
|
| MD5 |
d93c3f89c5634bdf25b4ed9b33e68d1f
|
|
| BLAKE2b-256 |
cd69e4b988b882c6ef800f8ff253544e5370505e470138799091b1939abc330e
|