繁体   English   中英

XML文件作为命令行参数并在Python中进行解析

[英]XML File as Command-Line Argument and Parse in Python

我正在尝试解析Python中的命令行参数,如下所示:

python test.py /home/Desktop/test.xml

我找到了getopt,但是如何使用三个参数呢? 此消息仅显示4,而我不知道该如何减少。 http://www.tutorialspoint.com/python/python_command_line_arguments.htm

DOM是解析XML文件的最有效方法吗?

我会放弃getopt赞成argparse ,其中有一个很好的教程在这里 argparse用更少的工作argparse显示出更好的错误。 我认为getopt主要用于与C API兼容这两个模块都支持较少的参数。 在您的特定情况下,您可能需要执行以下操作

import argparse

def parse_args():
    parser = argparse.ArgumentParser(usage)
    help = "The file to operate on"
    parser.add_argument("infile", type=argparse.FileType('r'), help=help)
    args = parser.parse_args()
    return args.infile

根据您的需求, lxml可能非常有用/强大。 我个人使用过BeautifulSoup (用于一些不太复杂的XML东西)。 标准库中推荐的模块是ElementTree ,它具有不错的API并可以执行许多XML事情。

编辑getopt 被弃用,因为我之前错误地指出

单个命令行参数很简单,不需要getopt或其他解析模块。 尝试将最后一个参数用作文件名,以在任何XML库中使用。

对于pythonic XML处理,请使用ElementTree

import sys
import xml.etree.ElementTree as ET

if __name__ == '__main__':
    print 'args:', sys.argv
    print 'last arg:', sys.argv[-1]
    if len(sys.argv) <= 1:
        sys.exit()
    tree = ET.parse(sys.argv[-1])
    root = tree.getroot()
    for child in root:
        print child.tag, child.text

(了解基本知识后添加文件存在检查和错误处理)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM