запустите exe из графического интерфейса python

#python #user-interface #tkinter #exe

Вопрос:

У меня есть EXE-файл, который запрашивает приглашение ms-dos и запрашивает несколько входных параметров, которые могут быть предоставлены либо как входные данные по одному (var1 —> ввод, var2 —>> ввод и т. Д.), Либо в виде массива. Затем он производит некоторые вычисления и создает TXT-файл в качестве выходного.

Я хочу запустить EXE-файл с python и предоставить входные параметры через графический интерфейс на python в приглашение ms-dos (это моя главная задача) и запустить моделирование (с помощью кнопки «Пуск» в графическом интерфейсе). Есть идеи? Возможно ли это?

Вот с чего я начал:

 import os

from Tkinter import Tk     # from tkinter import Tk for Python 3.x
from tkinter.filedialog import askopenfilename

Tk().withdraw() # we don't want a full GUI, so keep the root window from appearing
filename = askopenfilename("file.exe") # show an "Open" dialog box and return the path to the selected file

os.system(filename)
 

Комментарии:

1. Для входных параметров вам придется самостоятельно разработать графический интерфейс. Для его разработки потребуется немного работы, и не похоже, что это хороший вопрос о стековом потоке. Если у вас есть конкретный tkinter вопрос, я буду рад попытаться ответить на него.

2. @TheLizzard спасибо за отзыв. на самом деле моя главная забота-это входные параметры. не могли бы вы дать мне какую-нибудь справку? Я бы хотел сделать снимок. Спасибо

3. Я не знаю никаких готовых пакетов, которые вы могли бы использовать для этой части графического интерфейса, но я рекомендую ознакомиться с некоторыми tkinter учебными пособиями. После этого, если у вас есть конкретный вопрос, задавайте. Вопрос прямо сейчас слишком широк для stackoverflow.

4. Я согласен с @TheLizzard, это был бы отличный способ научиться пользоваться tkinter , потому что то, что вы хотите сделать, относительно просто. По сути, все, что вам нужно, — это одно окно с некоторыми полями ввода и кнопкой «Отправить», чтобы запустить EXE-файл и передать ему входные значения, введенные пользователем.

5. Этот учебник называется » Простая регистрационная форма с использованием Python Tkinter «. Похоже, это даст вам хорошее начало. В Интернете есть много других, если вы поищете их в Google.

Ответ №1:

Подпроцесс

 import subprocess

subprocess.check_call([r"tools/external_tools/mintty.exe", "-t", "Terminal", "-i", "icon.ico"])

# subprocess.check_call([r".exe", "argument", "argument_parameter"])
 

Если это реализовано таким образом, то при каждом запуске программа перестанет отвечать на запросы. Поэтому рекомендуется делать это с помощью резьбы

С Нарезанием Резьбы

 import subprocess
import threading

def custom_terminal():
    subprocess.check_call([r"tools/external_tools/mintty.exe", "-t", "Terminal", "-i", "icon.ico"])

threader = threading.Thread(target=custom_terminal)
threader.start()