在python子进程方法中捕获isql的错误消息

时间:2015-10-26 10:23:48

标签: python subprocess isql

我正在使用python subprocess执行isql命令。我使用下面的代码来捕获输出和错误消息。

command = "./isql -S "+mdbserver+" -U "+muserid+" -P "+mpassword+" -D "+mdatabase+" -s '"+self.Delimiter+"' -w 99999 <<EOF\nSET NOCOUNT ON\n"+Query+"\ngo\nEOF"
output, err = subprocess.Popen(command,stdout=subprocess.PIPE,shell=True,cwd=sybase_bin)

我的isql命令的输出和错误来自输出变量。如何在err变量中捕获isql的错误消息。

1 个答案:

答案 0 :(得分:1)

使用stderr参数:

proc = subprocess.Popen(
    command,
    stdout=subprocess.PIPE,
    stderr=subprocess.PIPE,
    shell=True,
    cwd=sybase_bin
)

然后:

output, error = proc.communicate()

请参阅the docs for more details