Skip to main content

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 --json or -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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

character_counter_maaren-0.1.0.tar.gz (12.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

character_counter_maaren-0.1.0-py3-none-any.whl (12.0 kB view details)

Uploaded Python 3

File details

Details for the file character_counter_maaren-0.1.0.tar.gz.

File metadata

File hashes

Hashes for character_counter_maaren-0.1.0.tar.gz
Algorithm Hash digest
SHA256 3050a11e802c5b83d64b098db68759d540a7dd4326fd6e43dcbb28251abbcd97
MD5 c7d872566931084062d6d7b1679f5c86
BLAKE2b-256 512981d8404d0efb4d7b894400c32ab6f8eeae80ef3eba368ec7296d143e46c7

See more details on using hashes here.

File details

Details for the file character_counter_maaren-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for character_counter_maaren-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 dacac90ca71f817f720da4f918c1caeb686713067dc4eed7c6661c8b0c760f9a
MD5 d93c3f89c5634bdf25b4ed9b33e68d1f
BLAKE2b-256 cd69e4b988b882c6ef800f8ff253544e5370505e470138799091b1939abc330e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page