当用户在 CLI 中输入文本时,制作一个实时更新计数器以显示剩余字符数 (windows + python)

Make a live updating counter to show the number of remaining characters WHILE the user inputs the text in CLI (windows + python)

基本上是标题。

在 Python 中,我想从用户那里获取最多 280 个字符的输入,并在用户键入输入时在 CLI 上显示实时更新计数器。(类似于进度条)

让一些文本在屏幕上更新很简单,但我不知道如何计算用户输入的字符数。

P.S。 First-time Whosebug 用户,请放轻松。 :)

编辑: 代码库:https://github.com/Prathamesh-Ghatole/100DaysOfCode-Writer/blob/master/main.py

我还没有要实现的特定代码片段。

但我基本上想在循环中从用户那里获取字符输入,其中每次迭代都执行以下操作:

  1. 接受单个字符输入。
  2. 更新计算输入字符总数的变量。
  3. 从字符数限制中减去输入的字符数。
  4. 超过字符限制时触发标志。

使用 pynput 包似乎可行。

from pynput.keyboard import Key, Listener
import os

length = 0
char_count = dict()
text = str()


def on_press(key):
    try:
        global text
        global char_count
        global length

        if length >= 280:
            print("[+] Character Limit Excided!")
            return False

        elif key == Key.enter:
            return False

        else:
            os.system("cls")
            if key == Key.space:
                text += ' '
            else:
                text += f"{key.char}"
            char_count[text[-1]] = char_count.get(text[-1], 0) + 1
            length += 1
            print(f"Enter Text: {text}")
            print(f"Characters Left: {280 - length}")
            print(f"Char Count {char_count}")
    except:
        exit()

def main():
    os.system("cls")
    with Listener(on_press=on_press) as listner:
        print("Enter Text: ")
        listner.join()


if __name__ == '__main__':
    main()