【问题标题】:Basic Python StringIO -- Why is GetValue() Returning Nothing?基本 Python StringIO -- 为什么 GetValue() 什么都不返回?
【发布时间】:2011-08-25 12:45:41
【问题描述】:

我遇到了基本的 Python 问题。在以下示例中,没有返回错误,但使用 pprint 显示所有变量的内容表明 contents 为 = '' - 为什么会这样情况如何?

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()

有什么想法吗?谢谢

【问题讨论】:

    标签: python stringio


    【解决方案1】:

    查看涉及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() 内容 = strio.getvalue() strio.close() 是这样做的方法。
    • curlobj.setopt(pycurl.WRITEFUNCTION, strio.write)
    【解决方案2】:

    你永远不会对你的 strio 变量做任何事情。您必须将它传递给某个函数才能写入任何内容。

    【讨论】:

    • 谢谢!看起来像 strio = StringIO.StringIO() curlobj = pycurl.Curl() curlobj.setopt(pycurl.URL, url) curlobj.setopt(pycurl.WRITEFUNCTION, strio.write) curlobj.perform() curlobj.close() 内容 = strio.getvalue() strio.close() 是这样做的方法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-04
    • 1970-01-01
    相关资源
    最近更新 更多