CentOS7中Python3程序无法接收键盘输入的问题求助
解决CentOS7中Python3程序输入被Bash拦截的问题
你遇到的bash: y: command not found错误,核心原因是你的Python代码没有被Python解释器正确接管,反而被Bash当成了命令行指令来解析——当你输入y时,Bash误以为这是一条系统命令,自然就找不到对应的执行文件了。
下面是具体的解决步骤,帮你绕过Shell直接把输入传给Python程序:
1. 整理完整的Python脚本并添加Shebang行
首先把你的代码保存成一个.py后缀的脚本文件(比如叫plot_handler.py),并且在文件最开头加上一行shebang,明确告诉系统用Python3来执行这个脚本:
#!/usr/bin/env python3 # 补全循环结构,不然continue/break会触发语法错误 while True: keyInput = input('Would you like to see another plot? y/n: ') print(keyInput) if keyInput == 'y': continue elif keyInput == 'n': break else: print(f'Command {keyInput} is not valid')
注:你原来的代码里缺少循环上下文,continue和break必须在循环内使用,我已经补上了while True:,这是你需要注意的潜在语法问题。
2. 给脚本添加可执行权限
在终端里执行以下命令,让脚本拥有执行权限:
chmod +x plot_handler.py
3. 正确运行脚本
现在有两种可靠的方式运行脚本,都能确保输入被Python处理:
- 方式一:直接运行脚本文件
./plot_handler.py
- 方式二:用Python3命令显式调用(适合没加shebang或权限不足的情况)
python3 plot_handler.py
额外提示:避免在Bash环境逐行输入Python代码
如果你之前是直接在Bash提示符下逐行敲Python代码,Bash会把每一行(包括你输入的y)当成自己的命令执行,这肯定会出错。正确的交互式运行方式是:先输入python3回车进入Python3的交互环境,再粘贴或输入代码,这样所有输入都会被Python解释器处理。
内容的提问来源于stack exchange,提问作者J.Li
相关产品推荐
相关产品推荐

