2011-07-15 14 views
1

私はos.popen(cmd)を使ってisqlを使ってデータベースに接続しています。これはUnixのPythonバージョン2.3.4です。私は、エラー処理を実装しようとしている、そしてこのようなと呼ばれるサブプロセスで発生するエラー/例外を捕捉するための効率的な方法 あります場合、私はなど、標準エラーに対処することなく、Python - サブプロセスの例外をキャプチャ

おかげで、
ダン

を思ったんだけど
+0

この 'isql'プログラムは出力を制御するPythonスクリプトですか? –

+0

UNIX上で実行可能なプログラムはありません – Dan

+0

http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.help.ase_15.0.utility/html/utility/utility210.htm – Dan

答えて

0

いいえ、あなたが得るすべては

  • あるパイプの上に来るものは何でもするときにpcloseプロセスpopen
  • から子プロセスの終了コードを返しました。あなたは次のようにサブプロセスを使用している場合は
2

あなたがstdoutとエラーを返すことができるようになります。この

sql_stdout_stderr = subprocess.Popen(sql_command, stdout=subprocess.PIPE) 
#communicate returns a tuple 
stdout, stderr = sql_stdout_stderr.communicate() 

このようにそれを行うことができるはず。 stderrに何かが含まれている場合、空であればエラー処理は行われません。

Goodluck!

編集:私はstderrに対処したくないと言っていますが、本当に管理しやすいようにすべてをうまく処理するサブプロセスを使用すべきだと思います。

+0

ありがとう残念ながら、私はサブプロセスモジュールを含まないPython 2.3を使用しています。私はos.popen3を使ってstderrを得ることができますが、私の目的にはそれほど実用的ではありません。 – Dan

関連する問題