我正在使用os.popen(cmd)连接到带有isql的数据库。这是在Unix,Python版本2.3.4。我正在尝试实现错误处理,我想知道是否有 一种有效的方法来捕获由此类调用的子进程引发的错误/异常,而无需处理stderr等。
谢谢,
丹
答案 0 :(得分:2)
如果您以下列方式使用子进程,则应该能够像这样执行
sql_stdout_stderr = subprocess.Popen(sql_command, stdout=subprocess.PIPE)
#communicate returns a tuple
stdout, stderr = sql_stdout_stderr.communicate()
这将允许您返回标准输出和错误。如果stderr包含任何错误处理,如果空无效。
古德勒克!
编辑:我刚刚读到你不想处理stderr,我真的认为你应该使用subprocess来处理所有事情,希望能让你更容易管理。
答案 1 :(得分:0)
没有。你得到的只是
popen
pclose
进程时子进程的退出代码。