簡體   English   中英

關閉子進程打開的 window

[英]Closing a window opened by Subprocess

我正在編寫一個腳本(我們稱之為 p1.py),它調用另一個 python 腳本(我們稱之為 p2.py)。 這個 p2.py 是用 subprocess run(cmd, shell=True) 調用的,在某些時候,p2.py 會打開一個需要用 ESC 取消的 window。 同時,p1.py 只是在等待 p2.py 結束。 不幸的是,這個 window 來自我不想為了兼容性而接觸的庫。 問題是有什么方法可以避免這個 window 或者無論如何以編程方式關閉它?

參數: 語言:Python 3.7 操作系統:Ubuntu/Linux

您可以使用subprocess.Popen('python py2.py')而不是 subprocess.run subprocess.run() 在 py1.py 中,這將立即返回並給您一個 object 以便稍后殺死 py2.py 的進程。 但是,您需要知道當 py2.py 完成並且 window 正在顯示時,您需要等待多長時間或獲得 py1.py 的其他信號。
在 py1.py 中嘗試這樣的操作:

import subprocess
import signal
import time
p = subprocess.Popen('python py2.py')
time.sleep(...) # wait until py2.py is done
p.send_signal(signal.SIGTERM)

注意:這不適用於shell=True參數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM