如何在Visual Studio Code中实现运行代码后自动停止的效果?
问题根源
你的代码运行后不会自动停止的核心原因是用到了阻塞式输入函数input(),程序执行到这一行会一直挂起等待用户输入内容并回车,才会继续执行后续逻辑,所以不会自动终止。
可行解决方案
- 方案1:代码层面增加输入超时逻辑,不需要手动输入就能达到自动停止的效果,可自定义等待时长,修改后的参考代码如下:
import signal # 超时触发的回调函数 def timeout_handler(signum, frame): raise TimeoutError("等待输入超时,程序自动退出") # 设置等待输入的超时时长,单位为秒,可自行调整 signal.signal(signal.SIGALRM, timeout_handler) signal.alarm(5) def login(y): try: x = input('Hi. what\'s your name? %s.\nHi %s ' % (y, y)) return x except TimeoutError: return "已自动终止程序" print(login('sajjad')) # 执行完成后取消超时设置 signal.alarm(0)
方案2:修改Code Runner插件配置(如果你用该插件运行代码)
- 打开VS Code设置页,搜索
Code Runner: Run In Terminal,取消该选项的勾选 - 配置完成后重新运行代码,进程执行结束后会自动销毁,不会一直挂在后台
- 打开VS Code设置页,搜索
方案3:修改Python运行配置,使用内置控制台执行
打开项目的.vscode/launch.json文件,在配置项中添加"console": "internalConsole",之后运行代码会使用VS Code内置的调试控制台执行,该控制台不支持输入交互,input()执行时会直接抛出异常,程序也会随之自动终止,符合自动停止的需求。
内容的提问来源于stack exchange,提问作者Sajjad Ahmadi
相关产品推荐
相关产品推荐

