前提・実現したいこと
初心者です。
以下のような、「a.py」 と「b.py」の2つのPythonスクリプトがあるとします。
a.pyを実行すると、
- "start"と出力。
- b.pyを呼び出す。(b.pyは5秒間待ってから終了するスクリプトです)
- b.pyの処理が終了したら、"finish"と出力。
の順で、処理されるようにしようと思っています。
つまり、"start"の出力から5秒後に"finish"と出力されるのが、期待する結果です。
どなたかご教授いただけますでしょうか…?
発生している問題・エラーメッセージ
"start"と出力されてから、間髪入れずに"finish"と出力されます。
該当のソースコード
Python
1# a.py 2import sys 3 4import time 5time.sleep(5) 6sys.exit(0)
Python
1# b.py 2import sys 3import subprocess 4 5print("start") 6subprocess.Popen([sys.executable, 'a.py']) 7print("finish") 8
###試したこと
「a.pyの処理の内容をdefでユーザ関数として、それをb.pyでimportして実行する」
ようにすると、今回の問題は解決できます。
ですが、「subprocess.Popenで呼び出したスクリプトそのものの終了を待つ方法が無いのか」疑問に感じましたので、質問させていただきました。
よろしくお願いします。

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2019/05/22 13:28