1

現在、私はこれをWindowsで実行しています:

args = ['start', windowname, 'python', '-i', myscript]
subprocess.Popen(args, shell=True)

ご覧のとおり、Python の対話モードで myscript を実行するサブプロセスを起動します。私の場合、これは、スクリプトが終了すると、エラーが発生したか正常に完了したかに関係なく、ウィンドウ/シェルが開いたままになることを意味します。ただし、myscript がエラーになったときにウィンドウが開いたままになり、myscript が正常に実行されたときにウィンドウが閉じられるようにしたいと考えています。

私がこれを行っている理由は、エラーとエラーに至るまでの出力を見たいからです.ウィンドウと出力を視覚的に見る方が簡単なので、何らかの形式のログを使用したくない.

やり取りしているプロセスはpythonではなくstart/cmdであるため、リターンコードを確認できないと思います。私が間違っている場合は、私を修正してください!

ありがとう!

4

1 に答える 1

0

最も簡単な方法は、Python のリターン コードをチェックする小さなバッチ スクリプトで全体をラップすることだと思います (おそらくsys.exit()、適切なリターン コードで呼び出して設定します)。

このstackoverflowの質問pauseは、リターンコードを取得する方法をカバーしており(明らかにそれは%errorlevel%にあります)、バッチスクリプトで実行することでcmdウィンドウを開いたままにすることができます。

于 2013-03-28T07:47:43.323 に答える