如何为javascript打印格式化的python输出?

时间:2014-08-28 05:55:19

标签: javascript python cgi stdout

我在shell上打印时尝试捕获stdout。我得到这样的输出:

************* STARTING healthmonitor ***********************

Aug 28, 2014 5:17:58 AM org.rzo.yajsw.os.posix.PosixService getPid
INFO: wrapper pid file: /var/run/wrapper.healthmonitor.pid
Aug 28, 2014 5:17:58 AM org.rzo.yajsw.os.posix.PosixService startProcess
INFO: calling "/usr/bin/java" "-Dwrapper.pidfile=/va/run/wrapper.healthmonitor.pid"              
Aug 28, 2014 5:17:58 AM org.rzo.yajsw.os.posix.PosixService getPid
INFO: wrapper pid file: /var/run/wrapper.healthmonitor.pid
Aug 28, 2014 5:18:00 AM org.rzo.yajsw.os.posix.PosixService getPid
INFO: wrapper pid file: /var/run/wrapper.healthmonitor.pid

然而,当我使用相同的输出在网页上打印时,格式会像这样混乱:

********* 启动健康监护人 ******************* 8月28日, 2014年4:48:23 org.rzo.yajsw.os.posix.PosixService getPid INFO:包装器pid文件:/var/run/wrapper.healthmonitor.pid 2014年8月28日上午4:48:23 org.rzo.yajsw .os.posix.PosixService startProcess INFO:calling" / usr / bin / java" " -Dwrapper.pidfile =的/ var /运行/ wrapper.healthmonitor.pid" " -Dwrapper.service =真" " -Dwrapper.visible =假" " -Djna_tmpdir = /应用/英镑/ JSW / healthmonitor / bin中/../ TMP" "罐子" " /app/sterling/jsw/healthmonitor/wrapper.jar" " -c" " /app/sterling/jsw/healthmonitor/conf/wrapper.conf" 2014年8月28日上午4:48:23 org.rzo.yajsw.os.posix.PosixService getPid INFO:

使用cgi python调用方法在java脚本文件中调用打印它的python脚本。而在python脚本中,这就是它的印刷方式。

import cgi, cgitb

print("Content-type: text/html\n\n")
print """
<html><head></head>
<body>
<br>
"""
print nova.servers.get_console_output(VMID)

print """
</body></html>
"""

&#34; print nova.servers.get_console_output(VMID)&#34;是产生控制台输出的那个。

感谢您提供的任何帮助。

1 个答案:

答案 0 :(得分:1)

换行符(\n)在呈现为HTML时不会转换为新行。您可以使用<pre>标记(预格式化)以允许它们在渲染时具有意义。

...
print """
<html><head></head>
<body>
<br>
<pre>
"""
print nova.servers.get_console_output(VMID)

print """
</pre>
</body></html>
"""

或者您可以使用<br>替换换行符,如下所示:

print nova.servers.get_console_output(VMID).replace("\n", "<br>")

任何一方都应该做你想做的事。