Python stdout.readline() 卡住
我在我的Python脚本中使用:
cmd = ["checkcode.exe", "code=1234"]
proc = subprocess.Popen(cmd, stdout=subprocess.PIPE, close)
result = proc.stdout.readline()
checkcode.exe会返回一个值,或者什么都不返回,并且会一直运行。
当checkcode.exe返回一个值时,一切都正常,但如果checkcode.exe没有返回值,脚本就会在result = proc.stdout.readline()这一行卡住。
怎么解决这个问题呢?
1 个回答
4
你需要确保子进程能够正常退出,这样才能防止readline()这个函数卡住。readline()会一直等,直到它收到一个换行符或者文件结束的信号。文件结束的信号是在程序退出时才会出现。
另外,你也可以使用非阻塞的输入输出方式,就像上面评论里提到的那样。