我在我的 python 脚本中使用:
cmd = ["checkcode.exe", "code=1234"]
proc = subprocess.Popen(cmd, stdout=subprocess.PIPE, close)
result = proc.stdout.readline()
checkcode.exe 返回一个值,或者什么都不返回,然后保持存活
当 checkcode.exe 返回一个值时一切正常,但是当 checkcode.exe 不返回值时,脚本 block 在 result = proc.stdout.readline()
如何解决问题?
最佳答案
您必须确保子进程退出以防止 readline() 阻塞。 readline 等待直到它收到换行符或文件结尾。 EOF 在程序退出时实现。
或者,您可以使用上面评论中提到的非阻塞 I/O。
关于Python stdout.readline() 卡住,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24215560/