Почему sys.exit() не работает с subproccess.run() или subprocess.call()Python

Программы на Python
Anonymous
Почему sys.exit() не работает с subproccess.run() или subprocess.call()

Сообщение Anonymous »

Я хочу продемонстрировать, как открыть второй файл Python и закрыть первый. Из того, что я узнал, есть три способа открыть второй файл Python: subprocess.call(), subprocess.run() и subprocess.Popen().
Я попробовал изменить call() на run() или Popen() и обнаружил, что функция Popen() — единственная, которая работает; это позволяет sys.exit() фактически закрыть его. call() и run() открывают второй файл, но не закрывают первый файл. В конце концов, похоже, он зависает.
Вот мой пример кода:

Код: Выделить всё

import tkinter as tk
import subprocess
import sys

def start_newFile():
subprocess.call((sys.executable, 'testing2.py'))
sys.exit()

root = tk.Tk()
root.title("First Script")

# Button to start a new file
start_button = tk.Button(root, text="Start New File", command=start_newFile)
start_button.pack()

root.mainloop()
Почему это?

Подробнее здесь: https://stackoverflow.com/questions/783 ... ocess-call

Вернуться в «Python»