0

天文学の画像を分析するための Python スクリプトに取り組んでおり、Python スクリプト内で DS9 ウィンドウを開こうとしています (DS9 は、画像をインタラクティブに表示および分析できるユーティリティです)。通常、Linux ターミナルに移動して次のように入力して、DS9 を開きます。

>ds9 &

その後、別のウィンドウにポップアップします。

次の行を記述して、Python スクリプトでこれを模倣しようとしました。

os.system('ds9 &')

スクリプトを実行すると、DS9 ウィンドウがポップアップ表示されますが、残りのスクリプトは DS9 ウィンドウを閉じるまで実行されません。その後のタスクでは DS9 ウィンドウを開く必要があったため、エラーが発生しました。

Pythonスクリプト内からウィンドウを開き、残りのスクリプトを実行し続ける方法があるかどうか疑問に思っています。

多分:

os.system('ds9 &')

正しいアプローチではありませんか?

4

1 に答える 1

1

モジュールを使用できsubprocessます。または
subprocessを使用するのではなく、プロセスを生成する新しい方法です。os.spawn*()os.system()

あなたの場合:

import subprocess
subprocess.Popen(["ds9"])

これにより、 ds9がバックグラウンドで実行されます。

こちらのドキュメントを参照してください。

于 2013-06-14T04:38:42.000 に答える