我正在尝试捕获输出cgi.print_form()
并将cgi.print_environ()
它们写入文件以供以后阅读,但它的行为似乎不像我预期的那样。
我希望这只是将模块的输出写入指定的路径,但我得到的是cgi.print_form()
显示到页面的输出,没有 from cgi.print_environ()
,formpath
文件为空,并且envpath
文件没有被创建。
当我将模块包装进去时,str()
我得到None
了两个文件。
这应该是一个快速测试,看看我从远程托管的表单中得到了什么,但它只是不起作用。
这是python 2.7.2
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
函数输出。
for item in form:
key = form.getfirst(item)
fileitem = form[item]
if fileitem.filename:
formfile.write("%s is file %s\n" % (item, fileitem.filename))
filepath = '../fmtmp/%s_%s_%s' % (tstamp, item, fileitem.filename)
open(filepath, 'w').write(fileitem.file.read())
else:
formfile.write("%s = %s\n" % (item, key))
formfile.close()
envfile = open(envpath, 'w')
for var in os.environ:
envfile.write("%s = %s\n" % (var, os.environ[var]))
envfile.close()
这给了我将上传的任何内容保存为文件的额外好处。