python - 无法从 ant build.xml 文件向 pythonscript 传递参数。我怎样才能传递价值?
问题描述
我试图在运行 build.xml 文件时从我的 ant build.xml 文件运行 python 程序我无法将参数传递给 python 脚本
用于检查给定数字的阶乘的 Python 程序:
事实.py
#!/usr/bin/python
def factorial(num):
if num == 1:
return num
else:
return num * factorial(num - 1)
num = int(input('Enter a Number: '))
if num < 0:
print 'Factorial cannot be found for negative numbers'
elif num == 0:
print 'Factorial of 0 is 1'
else:
print ('Factorial of', num, 'is: ', factorial(num))
build.xml 文件如下所示:
<project name="ant_test" default="python" basedir=".">
<target name="python" >
<exec dir="D:\app\python" executable="D:\app\python\python.exe" failonerror="true">
<arg line="D:\app\ant-workout\fact.py/>
</exec>
</target>
当运行 build.xml 文件时,它运行 fact.py python 程序,它期望用户输入来检查给定数字的阶乘。
如何将数字从 ant build.xml 文件传递给 python 程序
提前致谢!!!!!
解决方案
根据文档
请注意,您不能与分叉程序进行交互,向其发送输入的唯一方法是通过input和inputstring属性。另请注意,从 Ant 1.6 开始,任何在分叉程序中读取输入的尝试都将收到 EOF (-1)。这是对 Ant 1.5 的更改,在 Ant 1.5 中,这样的尝试会被阻止。 (强调我的)
所以,你可以做什么?提供以下任一项:
input
一个文件,执行命令的标准输入从该文件中获取。此属性与 inputstring 属性互斥。
inputstring
一个字符串,用作执行命令的输入流。该属性与输入属性互斥。
例子:
<project name="ant_test" default="python" basedir=".">
<target name="python" >
<exec dir="D:\app\python" executable="D:\app\python\python.exe"
failonerror="true"
inputstring="42">
<arg line="D:\app\ant-workout\fact.py/>
</exec>
</target>
推荐阅读
- ios - 为什么全局变量的地址变了
- python - 在 IBM Watson node.js 聊天机器人中运行 python 脚本
- c++ - 传递 const 丢弃限定符
- laravel-5 - 登录后如何限制用户
- c# - 我想在选中复选框时显示数据库中的图像
- java - HttpsURLConnection openConnection 查询
- javascript - 将图像从客户端上传到 NodeJS 服务器并将其内部保存在服务器上?
- matlab - matlab中的自适应腐蚀和膨胀
- php - Apache 显示默认索引页面而不是虚拟主机中的页面
- spring-boot - 在 Spring Boot REST API 中上传文件