擅长:python、mysql、java
<p>你的陈述模棱两可:</p>
<pre><code><envVar name='QTDIR'>/homeqt/libs.qt4/qt4.5.1</envVar>
<envVar name='MAKE'>which make</envVar>
</code></pre>
<p>如何在<code>MAKE=which make</code>或{<cd2>}之间作出决定:</p>
^{pr2}$
<p>如果xml文件是机器生成的,并且人们不经常查看/编辑这个文件,那么您可以使用一个详细的显式表示法,如<a href="https://stackoverflow.com/questions/8101641/python-change-current-shell-environment-variables-while-using-popen/8101787#8101787">suggested by @stefan</a>。在</p>
<p>否则,可以使用更简洁简单的表示法:</p>
<pre><code>QTDIR: /homeqt/libs.qt4/qt4.5.1
$MAKE: which make
</code></pre>
<p>下面是一个Python脚本,它将该格式解析为字典:</p>
<pre><code>for line in file:
name, sep, value = map(str.strip, line.partition(':'))
if sep: # ':' is in the line
if name.startswith('$'):
name = name[1:] # strip '$'
value = subprocess.check_output(value, shell=True).strip()
d[name] = value
</code></pre>
<p>或者你可以这样做,例如:</p>
<pre><code>d = yaml.load(file) # yaml is as complex as xml, but less explicit i.e., worse
# and transform keys that start with '$' here
</code></pre>
<p>如果您需要更复杂的功能,xml格式可能是一种合理的回退。在</p>