我有一个外部程序的调用,但我想把输出在一个文本区域使用 AJAX 和html。我得到的唯一返回值是stdout的最后一行。
result = subprocess.Popen(command_analysis, stdout=subprocess.PIPE,
stderr=subprocess.STDOUT, shell=True)
while True:
output_stdout = result.stdout.readline().decode().strip()
if output_stdout == '' and result.poll() is not None:
break
if output_stdout:
outreports = f'{self.OUTPUT}{self.name}_report.html
data = [output_stdout, outreports]
return data
字符串
这些数据将用于js,我知道output_stdout变量正在覆盖它自己的值,但我如何才能做到这一点呢?
.
.
.
data = {
'stdout': result[0],
'report': url_for("static", filename=result[1])
}
return jsonify(data)
型
AJAX
function executeAnalysis(dados){
$.ajax({
//async: true,
url: '/analysis',
data: dados,
success: function (ret) {
console.log(ret)
console.log(ret.stdout)
fitList(ret.report);
$('.stdout').value += ret.stdout;
},
error: function(error) {
console.log('Erro:', error);
}
});
}
型
1条答案
按热度按时间vmdwslir1#
您只需要在开始循环之前创建一个字符串变量,并通过连接将每一行添加到此变量。
字符串