我将cmd替换为'gdb'或其他程序,所有这些都可与fcntl一起使用。 但仅在cmd与python相关时失败。
Popen(['python','-m','pdb','computer.py'],stdin = PIPE,stdout = PIPE,shell = False)
标志= fcntl(p.stdout.fileno(),F_GETFL) fcntl(p.stdout.fileno(),F_SETFL,标志| O_NONBLOCK)
预期结果是我可以正确获得标准输出。
答案 0 :(得分:0)
加上“ -u”参数。 -u:无缓冲的二进制stdout和stderr;也PYTHONUNBUFFERED = x 有关与'-u'相关的内部缓冲的详细信息,请参见手册页。