Python 程序不';不会产生任何错误或输出

Python 程序不';不会产生任何错误或输出,python,Python,我有以下Python程序: import xml.etree.ElementTree as ET import sys class MyXmlParser(object): def __init__(self, users): self.doc = ET.parse("users.xml") self.root = self.doc.getroot() def do_something

我有以下Python程序:

 import xml.etree.ElementTree as ET
    import sys   

    class MyXmlParser(object):

        def __init__(self, users):
            self.doc  = ET.parse("users.xml")
            self.root = self.doc.getroot()

        def do_something(self, output = sys.stdout):
            root_new  = ET.Element("users") 
            for child in self.root:
                username             = child.attrib['username']
                password             = child.attrib['password']   
                # create "user" here
                user    = ET.SubElement(root_new, "user") 
                user.set("username",username)               
                user.set("password",password) 
                # checking attribute - skip KeyError
                try:
                    remote_access   = child.attrib['remote_access']
                    user.set("remote_access", remote_access) 
                except KeyError:
                    pass

                for g in child.findall("group"):
                    # create "group" here
                    group     = ET.SubElement(user,"group")  
                    if g.text != "lion":
                        group.text = g.text 
            tree = ET.ElementTree(root_new)
            tree.write(output)
if __name__ =='main':
    parser = MyXmlParser()
    parser.do_something()
这是我的xml:

<users>
<user username="admin"  password="admin" remote_access="yes"></user>
<user username="private_user1" password="user1" ><group>group1</group><group>group2</group></user>
<user username="private_user2" fullname="user2" password="user2"><group>group1</group><group>group2</group></user>
</users>

组1组2
组1组2

我在这个节目中找不到任何错误。它应该输出一些xml。但目前它没有给出任何错误或输出。我希望有一些xml作为输出:(提前感谢

我将您的
MyXmlParser
类构造函数更改为:

    def __init__(self, users=None):
        self.doc = ET.parse("users.xml")
        self.root = self.doc.getroot()
并在类定义后添加了以下内容:

if __name__==" __main_ ":
    parser = MyXmlParser()
    parser.do_something()
得到了这一行输出:

group1group2group1group2

您希望输出是什么?您实际上并没有实例化类或调用
do\u something
方法。这只是一个定义。您应该创建一个主要部分(如果_name\uuuuu==“\uu main”:实例化对象并调用do_something方法。此外,您还有一个init,其中包含一个名为users的参数,您在任何地方都没有使用。在尝试查找错误时也要注意这一点。对于初学者,请在脚本底部添加
MyXmlParser().do_something()
。然后搜索有关类的教程(在Python中)例如,查看第行的init方法:self.root=doc.getroot(),doc的引用在哪里?应该是self.doc.getroot()?在类定义之后:?确切位置?+1分表示“self.root=self.doc.getroot()”谢谢。但对我来说仍然是一样的:(对不起,这是我的错误;),无论如何,谢谢,上帝保佑你。)我错过了if name='main':顺便说一句,我还将第二个参数更改为
users=None
,因为它没有在
\uuu init\uu()
中引用。@SRquery:为什么突然不接受?