anaconda要不要安装vscode,vscode怎么没有运行终端的操作
使用Python运行Ant build时出现的问题:
使用os.system()调用Ant build时,无论构建成功还是失败(构建成功/构建失败),命令行总是正常结束。
要解决这个问题:
第一种可能的方法是获取ant命令的返回值,并根据返回值确定命令行的退出状态。不是0或0,0表示正常结束。
查阅相关资料时,python调用系统命令的函数有os.system、os.popen、commands.getstatusoutput/get状态/getoutput、子进程。
Os.system()无法获取返回值和输出。
Os.popen())返回文件读取的对象(这是read)。您可以看到操作后执行的输出。
返回系统命令的结束状态和输出。
Commands.getstatus()返回系统命令的结束状态。
Commands.getoutput))当使用返回系统命令输出的Commands相关函数运行Ant命令行时:
不执行构建直接退出(退出状态为(1),输出为(不是内部或外部命令,也不是可执行程序或批处理文件))。
结论:可能是因为Ant命令不是系统命令。在那里找资料,会知道subprocess.call、subprocess.check_call、subprocess.check_output等subprocess的相关函数。
Subprocess.call(*popenargs,**kwargs)执行命令,等待命令结束,然后返回子进程的返回值。
subprocess . check _ call * pope nargs,**kwargs执行上述调用命令并检查返回值。如果子例程返回非零值,将引发CalledProcessError异常。该异常具有returncode属性并被记录。
使用subprocess.call命令运行Ant命令行时,Subprocess.check_output()运行程序并返回标准输出。
无论构建成功还是失败,命令行总是正常结束。返回值为0
结论:命令行退出状态,即返回值指示Ant构建是否成功执行的状态,与Ant构建状态无关。命令行的退出状态(即返回值)与Ant构建状态无关,所以只能分析命令行的输出结果,根据构建的成功或失败来确定命令行的退出状态。然后,使用os.popen()命令获取输出结果并分析返回的状态值。
Python脚本演示如下。
#!Python.exe
# python版本2.7.8
#-*-编码:utf-8-*-
调用Ant执行构建并返回构建结果
__author__=donhui
导入操作系统
build _ successful=构建成功
BUILD_FAILED=“构建失败”
调用Ant来执行构建并返回构建结果。
#
defbuild(ant_target,build_file):
ant _ cmd= ant-f {0} {1} 21 。format (build _ file,ant_target)).
logging.info(ant_cmd).
状态=1
forlineinOS.popen(ant_cmd):
打印链接,
如果第行中的BUILD_SUCCESSFUL:
状态=0
退货状态
if __name__==__main__ :
调用Ant来执行构建
build _ file=OS . getcwd(()/build . XML).
ant_targets=init
如果0!=build(ant_targets,build_file):
从1号出口出去.
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。