【发布时间】:2019-07-11 14:39:06
【问题描述】:
我目前正在开发一个程序,该程序有 20 个左右的脚本,可以从一个使用子进程库调用这些脚本的 python 文件中调用。每个脚本都有 3 个参数,用户当前必须使用 argparse 在其中输入:ip 地址、用户名和密码。这些脚本自动测试网络设备等。
现在,我不想让用户在命令行上输入这些参数,而是想从我的公司生成的包含大约 5,000 行代码的 XML 文件中提取这些值。我可以提取所需信息的最佳方法是什么,以便用户不必手动输入参数?
我进行了一些研究,但遗憾的是我无法理解执行此操作的最佳方法。以下是 xml 文件的示例摘录:
<sheet>
<name>7_managementHosts</name>
<data>
<name>MgtHosts</name>
<key>
<name>Rack U-Location</name>
<value>U30</value>
<value>U29</value>
<value>U28</value>
</key>
<key>
<name>Default Component Name</name>
<value>sms01</value>
<value>sms02</value>
<value>sms03</value>
</key>
<key>
<name>DNS hostname (FQDN)</name>
<value>sms01.de1000.local</value>
<value>sms02.de1000.local</value>
<value>sms03.de1000.local</value>
</key>
<key>
<name>DNS suffix for management interface</name>
<value>de1000.local</value>
<value>de1000.local</value>
<value>de1000.local</value>
</key>
<key>
<name>Keyboard layout</name>
<value>US Default</value>
<value>US Default</value>
<value>US Default</value>
</key>
<key>
<name>root user password</name>
<value>myPassword</value>
<value>myPassword</value>
<value>myPassword</value>
</key>
这是一个非常长的 XML 文件,但树是这样的,我真的不知道解决这个问题的最佳方法。感谢您的帮助!
【问题讨论】:
-
Python 为 XML 文件的基本输入/输出提供了
xmlmodule - 这将帮助您以您的程序可以操作的方式读取 XML 文件。或者,您可以查看BeautifulSoup,这是一个 HTML/XML 解析库,它可能更易于使用,具体取决于您要对该文件执行的操作。
标签: python xml xml-parsing