在控制台、HTML和文本中显示Python输出

-2 投票
1 回答
3761 浏览
提问于 2025-04-18 09:47

我用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"

如果参数比较复杂,可以安装并使用 getoptargparse 模块


在这里输入图片描述

在这里输入图片描述

撰写回答