基本Python StringIO——为什么GetValue()什么也不返回?

基本Python StringIO——为什么GetValue()什么也不返回?,python,stringio,Python,Stringio,我有一些基本的python问题。。在下面的示例中,没有返回任何错误,但使用pprint显示所有变量的内容时,显示的内容为=“”——为什么可能是这种情况 import sys, os, re, StringIO, pprint, time from BeautifulSoup import BeautifulSoup, BeautifulStoneSoup import pycurl url = "http://google.com/"; strio = StringIO.StringIO()

我有一些基本的python问题。。在下面的示例中,没有返回任何错误,但使用pprint显示所有变量的内容时,显示的内容为=“”——为什么可能是这种情况

import sys, os, re, StringIO, pprint, time
from BeautifulSoup import BeautifulSoup, BeautifulStoneSoup
import pycurl

url = "http://google.com/";

strio = StringIO.StringIO()

curlobj = pycurl.Curl()
curlobj.setopt(pycurl.URL, url)
curlobj.perform()
curlobj.close()

contents = strio.getvalue()
strio.close()

有什么想法吗?谢谢

您从未使用
strio
变量做过任何事情。您必须将其传递给某个函数,才能向其写入任何内容。

查看涉及
StringIO
的行

strio = StringIO.StringIO()
contents = strio.getvalue()
strio.close()
这些语句都没有从
curlobj
中提取内容。因此,
strio
是空的


编辑(感谢@Alexander Cameron和@agf):

也许你的意思是

curlobj.setopt(pycurl.WRITEFUNCTION, strio.write)    

谢谢看起来像strio=StringIO.StringIO()curlobj=pycurl.Curl()curlobj.setopt(pycurl.URL,URL)curlobj.setopt(pycurl.WRITEFUNCTION,strio.write)curlobj.perform()curlobj.close()contents=strio.getvalue()strio.close()就是这样做的方法。或者
curlobj.setopt(pycurl.WRITEFUNCTION,strio.write)
谢谢!看起来strio=StringIO.StringIO()curlobj=pycurl.Curl()curlobj.setopt(pycurl.URL,URL)curlobj.setopt(pycurl.WRITEFUNCTION,strio.write)curlobj.perform()curlobj.close()contents=strio.getvalue()strio.close()就是这样做的方法。