将python cgi.print_environ()和cgi.print_form()的输出写入文件

时间:2012-06-08 16:22:39

标签: python cgi

我正在尝试捕获cgi.print_form()cgi.print_environ()的输出并将它们写入文件以供稍后阅读,但它似乎没有像我期望的那样表现。

我希望这只是简单地将模块的输出写入指定的路径,但我得到的是显示在页面上的cgi.print_form()输出,而不是cgi.print_environ(),{{1} } file为空,并且不会创建formpath文件。

当我将模块包装在envpath中时,我在两个文件中都得到str()

这应该是一个快速测试,看看我从远程托管表单中获得了什么,但它只是不起作用。

这是python 2.7.2

None

编辑:刚刚决定编写自己的循环,但仍在寻找捕获formfile = open(formpath, 'w') formfile.write(cgi.print_form(form)) formfile.close() envfile = open(envpath, 'w') envfile.write(cgi.print_environ()) envfile.close() print_form函数输出的方法。

print_environ

这给了我更好的保存任何上传的文件。

1 个答案:

答案 0 :(得分:1)

请注意,如果在交互式提示符中运行,x = cgi.print_environ()仍会输出内容(x将为None)。 CGI通过标准输入/输出与Web服务器进行交互。 print_environ()只是打印到标准输出。重点是通过在浏览器中打印来轻松调试环境。

编辑:实际上将它发送到文件有点棘手。你可以尝试:

f = open('file', 'w')
old = sys.stdout
sys.stdout = f
cgi.print_environ()
f.flush()
sys.stdout = old
f.close()