Vin*_*ang 7 python winapi stdin signals
我用以下代码创建了一个简单的test.py:
import sys
res = sys.stdin.read()
print(res)
Run Code Online (Sandbox Code Playgroud)
但是当我尝试跑步时
python test.py
Run Code Online (Sandbox Code Playgroud)
然后我输入
hello
Run Code Online (Sandbox Code Playgroud)
并通过Ctrl+ 结束输入z,我得到以下消息:
4 [sig] bash 11516! sigpacket::process: Suppressing signal 18 to win32 process (pid 10620)
Run Code Online (Sandbox Code Playgroud)
我不知道出什么问题了。
信号18只是Ctrl+ 的处理程序Z。(从技术上讲,它映射到SIGTSTP。)该信号告诉进程暂停。由于该信号通常对Windows进程没有意义,因此git-bash会禁止显示该消息,但仍会让您知道它已禁止了该信号。
不幸的是,默认的git-bash终端MinTTY无法为本机Windows控制台应用程序正确连接控制台。因此,即使忽略警告消息,python解释器也无法正常工作。(更多信息)
为了正确连接python,您需要使用它winpty来启动python。命令:
winpty python test.py
Run Code Online (Sandbox Code Playgroud)
将工作。如果需要访问git命令,也可以使用git-cmd;如果不需要,则可以打开标准Windows命令提示符并在其中运行python。
| 归档时间: |
|
| 查看次数: |
2237 次 |
| 最近记录: |