如何在python脚本中访问ant变量

如何在python脚本中访问ant变量,python,build,ant,python-2.4,Python,Build,Ant,Python 2.4,我在ant中创建了build.properties文件,其中定义了一些变量,如下所示 webinf.dir = WEB-INF src.dir = ${webinf.dir}/src 现在这些变量在ant build.xml文件中被访问,并且工作正常。但是我也想在python文件中访问这些变量。 我希望src.dir的值是WEB-INF/src而不是${webinf.dir}/src 我该怎么做呢?我相信您可以使用一个由Ant和Python读取的属性文件(例如build.py)。例如: bu

我在ant中创建了build.properties文件,其中定义了一些变量,如下所示

webinf.dir = WEB-INF

src.dir = ${webinf.dir}/src
现在这些变量在ant build.xml文件中被访问,并且工作正常。但是我也想在python文件中访问这些变量。 我希望src.dir的值是
WEB-INF/src
而不是
${webinf.dir}/src


我该怎么做呢?

我相信您可以使用一个由Ant和Python读取的属性文件(例如build.py)。例如:

build.xml

<project default="build">
    <property file="build.py"/>
    <target name="build">
        <echo message="${src.webinf}"/>
    </target>
</project>
build.py

#!/usr/bin/python

import ConfigParser
config = ConfigParser.ConfigParser()
config.read("build.py")
print config.get("properties", "src.webinf")
[properties]
src.webinf = WEB-INF
示例用法

$ ant
Buildfile: /Applications/MAMP/htdocs/clicks/test/build.xml

build:
     [echo] WEB-INF

BUILD SUCCESSFUL
Total time: 0 seconds

$ python script.py 
WEB-INF

实际上,仔细想想,使用共享属性文件限制了可以作为属性的键值对,因此您可能希望研究一些可以读取Java属性文件的第三方Python库,但我的问题是src.dir=${webinf.dir}/src我无法定义上面定义的变量。在检索src.dir的值时,我希望它是完整的路径。这对你有用吗?是的,我试过了,但没有用,因为我没有得到src.dir的完整路径。它返回${webinf.dir}/src,但我希望输出为WEB-INF/src。问题是src.dir是由Ant在运行时创建的。Python无法访问该变量,因为它只能访问初始属性文件。难道不能重构变量,将尽可能多的变量放入属性文件中,以便与Python脚本共享吗?