我正在使用Python调用bash来执行另一个bash脚本:
begin = int(sys.argv[1])
result = os.system("/tesladata/isetools/cdISE.bash %s" %begin)
Run Code Online (Sandbox Code Playgroud)
打印后result,它不仅给我输出,还给出了返回状态(0这里).如果我只需要输出,我该怎么办?
而且,仅仅是为了好奇,有多少方法可以在Python中调用bash?我会很高兴,如果有人可以给我如何使用它们的一些参考,我只发现os.system()和os.popen()至今.
实际上,result只是返回状态为整数.你正在调用的东西写入stdout,它继承自你的程序,所以你看到它立即打印出来.它永远不适用于您的程序.
查看子流程模块文档以获取更多信息:
http://docs.python.org/library/subprocess.html
包括捕获输出,以及以不同方式调用shell.
你可以通过管道扔掉任何输出/dev/null.
begin = int(sys.argv[1])
result = os.system("/tesladata/isetools/cdISE.bash %s > /dev/null" %begin)
Run Code Online (Sandbox Code Playgroud)
如果您不想显示错误,请将>to 更改2&>为discard stderr.