Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 子进程使用Popen失败_Python - Fatal编程技术网

Python 子进程使用Popen失败

Python 子进程使用Popen失败,python,Python,我试图让一个名为xselect的程序使用python中的Popen构造运行。如果我通过手动输入命令从终端手动运行xselect,它会一直运行。但是,当从python脚本执行时,它会在某个命令处冻结,并且不会继续。当我检查日志文件时,会捕获所有输出,但不会捕获任何错误消息 我认为Popen可能不知道如何处理xselect输出中的错误,这导致xselect冻结。为了解决这个问题,我尝试添加一个超时,以便它在5秒后杀死xselect,但这也不起作用 有人能帮我把这个打开吗 with subproces

我试图让一个名为xselect的程序使用python中的Popen构造运行。如果我通过手动输入命令从终端手动运行xselect,它会一直运行。但是,当从python脚本执行时,它会在某个命令处冻结,并且不会继续。当我检查日志文件时,会捕获所有输出,但不会捕获任何错误消息

我认为Popen可能不知道如何处理xselect输出中的错误,这导致xselect冻结。为了解决这个问题,我尝试添加一个超时,以便它在5秒后杀死xselect,但这也不起作用

有人能帮我把这个打开吗

with subprocess.Popen(args, stdout=subprocess.PIPE, 
stderr=subprocess.STDOUT, universal_newlines=True) as proc:


    proc.wait(timeout=5)
    out = proc.stdout.read()
    if TimeoutExpired:
        proc.kill()

请参见此处的
proc.wait()
警告:。基本上,您应该使用
proc.communicate()
,或者应该读取
proc.stdout
,而不是等待