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

しかし、私はこのメッセージを受け取り続けます

構文エラー: from io import import StringIO: d:\py\xml\example.py, line 621 File "d:\py\xml\example.py", line 6, in ? from io import import 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は 1 回だけです。)

2to3スクリプトがこの変更を自動的に行うことに注意してください。

于 2012-08-27T17:51:15.933 に答える