Python 3.7.9 input()函数特定场景下无法响应键盘输入问题
Python 3.7.9 input()函数特定场景异常问题
问题现象
在Python 3.7.9环境中,input()函数仅在特定条件下出现异常:
- 键盘输入无法在屏幕显示,ENTER/RETURN键无法提交输入;
- 偶尔提交成功时,输入内容会携带大量
\r转义字符,导致用户无法正常退出交互式CLI,只能通过Ctrl+C终止程序。
程序架构
- Program A:Shell包装器,负责触发数百个Shell脚本,主线程调用Program B监控脚本输出与日志;
- Program B:Python交互式CLI UI,支持单键操作控制(如按'h'打开帮助菜单),通过
subprocess.run()执行命令IFS= read -r -t -5 -n 1 -s key获取按键; - Program C:使用
input()接收命令字符串的交互式CLI(例如输入save 1保存状态)。
测试情况
- 以下场景下Program C运行正常:
- 直接执行
python3 programC.py; - 从Program B中调用运行;
- 从Program A的审查模式(
./programA -review /log/dir/5)中调用运行。
- 直接执行
- 仅在Program A的执行模式(执行并监控数百个Shell脚本)中通过Program B调用Program C时,
input()出现挂起、不返回的问题。
额外信息
程序使用tput cmcup, rmcup, cvvis, civis, clear命令控制终端屏幕。
内容的提问来源于stack exchange,提问作者Levithan6785
相关产品推荐
相关产品推荐

