gpt4 book ai didi

python - 如何在cygwin中运行的python中拦截ctrl + c命令

转载 作者:行者123 更新时间:2023-12-04 13:58:45 26 4
gpt4 key购买 nike

我在 cygwin shell 中运行 python 脚本,但我无法拦截 ctrl + c 命令。

这是我的python脚本:

#!/cygdrive/c/python27/python.exe -u
import signal
import sys
def signal_handler(sig, frame):
print('You pressed Ctrl+C!')
sys.exit(0)

signal.signal(signal.SIGINT, signal_handler)
signal.signal(signal.SIGTERM, signal_handler)
signal.signal(signal.SIGBREAK, signal_handler)

print('Press Ctrl+C')
input()

同样使用 try/catch 方法仍然不起作用
#!/cygdrive/c/python27/python.exe -u
try:
input()
except KeyboardInterrupt:
print('Interrupted')

但是这些处理程序都不能与 ctrl + c 命令一起使用。 Cygwin 版本是 1.7.25(0.270/5/3),我使用的是 python 2.7。怎么了?

最佳答案

我在 mingw64 终端的 MSYS 环境( https://www.msys2.org/ )中遇到了同样的问题。我终于能够使用 winpty 解决这个问题工具:

winpty python3 my_python_script.py
这样信号处理程序按预期工作。我只是不确定 winpty 是否工具也可在您的 cygwin 发行版中使用。

关于python - 如何在cygwin中运行的python中拦截ctrl + c命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55648031/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com