在控制台、HTML和文本中显示Python输出
我用Python写了以下代码,我希望输出能在控制台、文本和HTML中显示。问题在于HTML的输出中,下面有两列,第一列是键,第二列是值。在控制台和文本中,它们之间有空格,但在HTML中却没有空格。
print f
x = "John"
g = "Peter"
if re.search(x,f) :
print temp.format("It contains John",2)
if re.search(g,f):
print temp.format("It contains Peter",5)
if re.search(x,f) and re.search(g,f):
print "It contains both persons"
sys.stdout = save_stdout
print capture.getvalue()
template = """
<html>
<head></head>
<body>
<p>%(text)s</p>
</body>
</html>
"""
count = capture.getvalue().count('\n')-1
html_message = template %{"text":capture.getvalue().replace('\n', "<br>\n", count)}
f2.write(html_message+"\n")
f2.close()
f1.write(capture.getvalue())
f1.close()
==============================================================================
input : "Peter and John went to London"
output in console:
Peter and John went to London
It contains John 2
It contains Peter 5
It contains both persons
but in html:
Peter and John went to London
It contains John 2
It contains Peter 5
It contains both persons
在HTML的输出中,键和值之间没有像控制台和文本那样的空格。有人能帮我解决这个问题吗?
1 个回答
0
最简单的解决办法是使用 <pre>%(text)s</pre>
<pre>
标签可以显示所有的空格、制表符和换行符(你不需要用 <br>
标签)
如果只有一个参数,你可以使用
import sys
if len(sys.argv) > 1:
if sys.argv[1] == '--h':
print "create HTML"
elif sys.argv[1] == '--t':
print "create TEXT"
如果参数比较复杂,可以安装并使用 getopt
或 argparse
模块