在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Python/ 在指定條件下,關閉調用的python文件

在指定條件下,關閉調用的python文件

1.有兩個 button,目的想要其中一個調用 py 文件執(zhí)行,另外一個 button 需要在按下之后,停止 py 文件的執(zhí)行。
2.相關代碼如下:

def childprocess():
    child = subprocess.Popen("python test.py",shell=True)

def killprocess():
    a = test.get_pid()
    os.system('taskkill /PID %s '%a )

def clickstart():
    # 此處省略部分代碼
    if flag == 3 and sign == 1 :
        start['state'] = DISABLED
        stop['state'] = NORMAL
        childprocess()
    else:
        pass

def clickstop():
    stop['state'] = DISABLED
    start['state'] = NORMAL
    killprocess()
stop = Button(operate, text='STOP',
              bg="grey", relief='raised', state=DISABLED, command=clickstop)

start = Button(operate, text='START',
               bg="grey", relief='raise', command = clickstart)

3.現(xiàn)在問題是由于調用的也是 python 文件,所以 Windows 里面有兩個 python.exe 進程,用 get_pid() 得到的是這個 python 的 pid,不是調用的 test.py 的 pid,因此 killprocess() 一執(zhí)行,兩個窗口都會被關掉

4.請問大神們可有好的解決辦法,能讓我在點擊 stop 按鈕之后,順利關掉調用的 test.py

回答
編輯回答
奧特蛋

給你個簡單的例子:

import subprocess
import psutil
import time

# 不要使用shell=True, 因為pid是主shell的,而不是子shell
child = subprocess.Popen("Notepad.exe")
time.sleep(5)
p = psutil.Process(child.pid)

p.terminate()
2017年1月25日 13:23