python:在输入时将输入转换为大写

2024-04-26 22:00:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我的Python程序如何将用户的键盘输入转换为大写,就像用户启用了大写锁定一样?在

我想模拟一个在没有任何小写字母的计算机上运行的程序(即比ASCII更受限制的字符集)。在

用户在键盘上以交互方式键入的文本输入应该实时强制为大写,就像用户键入的那样。在

命令行界面可以使用Python的标准^{}库或其他东西。转换可以通过自定义输入流或其他方式完成。在

我对完全重新实现逐字符的输入系统不感兴趣;例如,我想继续使用readline,如果它可用的话。我只想翻译结果流,因为它出现在视觉和进入程序。在

有一个Unix终端属性OLCUC,这听起来很有前途;但是它是marked LEGACY in the Single Unix Specification,并且它的实现不可靠(对于一些正常的控制序列或Unicode文本,这会导致垃圾)。所以这不是一个解决办法。在

尤其重要的是,界面应该看起来与实际输入大写文本的人无法区分;显示器只应显示用户的输入作为程序将要处理的大写文本。在


Tags: 命令行用户文本程序键入界面计算机ascii
1条回答
网友
1楼 · 发布于 2024-04-26 22:00:17

使用getch:http://code.activestate.com/recipes/134892/

__call__func中的stdin.read后面附加以下内容:

try:
    tty.setraw(sys.stdin.fileno())
    ch = sys.stdin.read(1).upper()
    sys.stdout.write(ch)
    ...

您只需执行一个条件while(例如,直到用户按enter键)来逐个获取字符并将其作为大写形式回显:

^{pr2}$

相关问题 更多 >