我正在尝试捕获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
这给了我更好的保存任何上传的文件。
答案 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()