【问题标题】:having output of python in console and html and text在控制台和 html 和文本中输出 python
【发布时间】:2014-06-14 17:06:10
【问题描述】:

我使用 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 的输出中没有像 console 和 text 这样的空格。 谁能帮我解决这个问题?

【问题讨论】:

  • HTML 需要特别小心才能生成列。控制台使用固定宽度字体,因此列就像确定必要的空格数一样简单。有几种方法可以在 HTML 中生成列,因此请研究并选择最适合您情况的方法。

标签: python html text


【解决方案1】:

最简单的解决方案——使用&lt;pre&gt;%(text)s&lt;/pre&gt;

&lt;pre&gt; 显示所有空格、制表符和“\n”(您不需要&lt;br&gt;


对于一个参数,您可以使用

import sys

if len(sys.argv) > 1: 
   if sys.argv[1] == '--h':
      print "create HTML"
   elif sys.argv[1] == '--t':
      print "create TEXT"

对于更复杂的参数(安装和)使用模块getoptargparse


【讨论】:

  • 如果我想添加一些东西让用户选择(--h)寻求帮助,(--f)..我怎么能对上面的代码做到这一点
  • argv 假设是什么?我应该在我的代码中使用上面的内容吗?因为我读过论据,但老实说我不明白
  • 如果你运行python my_script.py arg1 arg2 arg3,你有列表argv=['my_script.py', 'arg1', 'arg2', 'arg3']
  • 真的很抱歉。但是 python my_script.py 这是什么?这是我应该编写的另一个代码并将其保存为名称 my_script 吗??
  • 你如何运行你的脚本?在控制台中?写python script_name.py?你想如何使用--h--fpython script_name.py --h --f ?