从os.system执行shell时,在文件中写入echo输出

时间:2016-06-02 11:53:57

标签: jython

我正在通过jython os.system命令运行shell命令。我的代码如下:

import os
import sys

vCmdLine = "sh C:/scripts/WAQ.sh PARAM_1 PARAM_2 >> C:/logs/WAQ.log 2>&1"
vCmdRC = os.system(vCmdLine)

我的shell有几个echo命令,我想在C:/logs/WAQ.log文件中编写。

如果我在unix OS上执行相同的代码,代码工作正常。但是,当我在Windows上运行相同时,它不会在C:/logs/WAQ.log文件中写入任何内容。我在windows上使用unix util lib。

问题是什么?

1 个答案:

答案 0 :(得分:0)

我已经更改了代码并用subprocess.call替换了os.system,现在记录完美了。以下是我的代码

    import subprocess
    vLogFileName = 'C:/logs/WAQ.log'
    vCmdLine = "sh C:/scripts/WAQ.sh PARAM_1 PARAM_2"
    f = open(vLogFileName, "a")
    subprocess.call(vCmdLine, stdout=f)
    f.close()

为什么日志记录不能在windows上使用os.system?