将Python输出直接转换为文本文件和html

将Python输出直接转换为文本文件和html,python,html,text,Python,Html,Text,我正试图编写一个代码,并将输出放在控制台、文本文件和html文件中,但html文件的问题是,所有输出都显示在一个like中,而不是像控制台上逐行显示的那样: def main(): import re, sys from StringIO import StringIO from os.path import basename,join f2 = open('helloworld.html','w') f1 = open("testing.txt",'w') f= raw_input("\

我正试图编写一个代码,并将输出放在控制台、文本文件和html文件中,但html文件的问题是,所有输出都显示在一个like中,而不是像控制台上逐行显示的那样:

def main():

import re, sys
from StringIO import StringIO
from os.path import basename,join

f2 = open('helloworld.html','w')
f1 = open("testing.txt",'w')

f= raw_input("\n Hello, use.\n \n PLease type in the name of the  press 'Enter': ") 

capture = StringIO()
save_stdout = sys.stdout
sys.stdout = capture


print f
x = "John"
g = "Peter"


if re.search(x,f) :
    print "It contains  John"
if re.search(g,f):
    print "It contains Peter"
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>
"""

html_message = template %{"text":capture.getvalue()}


f2.write(html_message)
f2.close()

f1.write(capture.getvalue())
f1.close()
def main():
输入re,sys
从StringIO导入StringIO
从os.path导入basename,加入
f2=打开('helloworld.html','w')
f1=打开(“testing.txt”,“w”)
f=原始输入(“\n您好,请使用。\n\n请键入“回车”键的名称:”)
capture=StringIO()
save_stdout=sys.stdout
sys.stdout=捕获
打印f
x=“约翰”
g=“彼得”
如果重新搜索(x,f):
打印“它包含约翰”
如果重新搜索(g,f):
打印“它包含彼得”
如果重新搜索(x,f)和重新搜索(g,f):
打印“它包含两个人”
sys.stdout=save\u stdout
打印捕获。getvalue()
模板=“”“
%(文本)s

""" html_message=template%{“text”:capture.getvalue()} f2.写入(html_消息) f2.关闭() f1.write(capture.getvalue()) f1.关闭()

有人能帮我吗?这是将输出复制到文本文件和html文件中的合适方法吗?

对于html文件,您需要将换行符替换为

类似这样的方法会奏效:

count=capture.getvalue().count('\n')-1 #you should do a count so that you don't add a newline at the end
html_message = template %{"text":capture.getvalue().replace('\n', "<br>\n", count)}
count=capture.getvalue()
html_message=template%{“text”:capture.getvalue().replace('\n',“
\n',count)}
相反,您可以使用它来很好地格式化输出html文件:

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)[::-1].replace('\n', "", 1)[::-1]}
template=”“”
%(文本)s

""" count=capture.getvalue().count('\n')-1 html_message=template%{“text”:capture.getvalue().replace('\n',“
\n”,count)[::-1]。replace('\n','',1)[::-1]}
上面我应该怎么做?用我给你的内容替换你的行“html\u message=template%{“text”:capture.getvalue()}”,它应该可以工作。关于上面的html输出,我还有一个问题吗?我在python输出中编写了一个代码,使它们之间的两列对称一个空格。但在html中,两列相邻。我不太理解你的问题,请打开一个新问题,然后发布你的代码和你想要的示例。很抱歉打扰你,但如果你能帮我,我只打开一个新问题?