2

显然,我是 Python 新手。

我想在下面的代码中使用 StringIO:提取 example.xml

 import os
os.chdir('d:/py/xml/')


from lxml import etree
from StringIO import StringIO

#----------------------------------------------------------------------
def parseXML(xmlFile):
    """
    Parse the xml
    """
    f = open(xmlFile)
    xml = f.read()
    f.close()

    tree = etree.parse(StringIO(xml))
    context = etree.iterparse(StringIO(xml))
    for action, elem in context:
        if not elem.text:
            text = 'None'
        else:
            text = elem.text
        print (elem.tag + ' => ' + text)

if __name__ == "__main__":

parseXML("example.xml")

但我不断收到这个消息

语法错误:从 io 导入导入 StringIO:d:\py\xml\example.py,第 621 行文件“d:\py\xml\example.py”,第 6 行,在?从 io 导入导入 StringIO

我做了谷歌,但它说要导入 io 模型并将 io.StringIO 或 io.BytesIO 用于文本或数据...

谁能告诉我,我该怎么做?

谢谢

4

2 回答 2

5

http://docs.python.org/release/3.0.1/whatsnew/3.0.html#text-vs-data-instead-of-unicode-vs-8-bit

StringIO 和 cStringIO 模块不见了。相反,导入 io 模块并分别对文本和数据使用 io.StringIO 或 io.BytesIO 。

from io import StringIO

于 2012-08-27T17:51:30.523 回答
3

在 Python3 中,StringIO位于io

from io import StringIO

(不是from io import import StringIO,关键字import只出现一次。)

请注意,2to3脚本会自动为您执行此更改。

于 2012-08-27T17:51:15.933 回答