Почему 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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