2015-02-19 2 views
0

У меня проблема, и я очень благодарен за любую помощь! Я использую PyQt4 и Python. У меня есть пакетный файл. Я пытаюсь создать PyQt4 gui, где я нажму кнопку, командный файл запустится, как-то я соберу только часть выходных данных пакета в txt-файле, я обработаю эти результаты, а затем они будут показаны в gui.I есть два вопроса:PyQt4 Нажмите кнопку, чтобы запустить пакетный файл и собрать его вывод

1) Есть ли способ связать пакетный файл с кнопкой в ​​PyQt, чтобы я мог запустить его через gui (нажав кнопку)?

2) Есть ли что-нибудь, что я могу добавить в мой код PyQt, который будет собирать выходные данные пакета в txt-файл? Спасибо!

+0

Можете ли вы сказать, что пакетный файл, как? Как и в том, как вы выполняете его вообще (команда). И какой результат вы хотите собрать? Как показано на экране? – smitkpatel

+0

Когда я дважды нажимаю командный файл, появляется cmd, где я отвечаю на пару вопросов «да/нет», и как только я отвечаю на все из них, он начинает работать. Когда он прекращает выполнение своих результатов (6-7 файлов), появляется той же папке, в которой находится командный файл, в формате, который не является txt.Для второго вопроса, если бы я не хотел создавать gui, я бы просто открыл их и переместил их в txt-файл. Я знаю как это сделать. Но теперь, когда у меня есть gui, кажется неправильным писать один за другим все файлы и открывать их внутри gui. – KeatC

+0

@KeatC. Лично я приложил все усилия к тому, чтобы полностью исключить пакетный файл. Все, что может сделать пакетный файл, python может сделать намного лучше. Эквивалент вопросов да/нет должен быть реализован как часть gui, и вывод должен отображаться непосредственно gui, а не сначала записывать его на диск. Конечно, особенности того, как это делать, зависит от того, что на самом деле делает пакетный файл ... – ekhumoro

ответ

0

Использование модуля подпроцесс для загрузки и выполнения партии

Это thread может помочь вам

+0

эта нить кажется очень полезной !! спасибо! Могу ли я спросить что-нибудь еще? Чтобы подключить кнопку, я должен подключить кнопку с помощью popen() fuction? like self.connect (buttonforbatch, SIGNAL («clicked()») self.bfunction), где bfunction - def bfunction (self): p = Popen ("batchfile.bat", cwd = r "c: \ directory \ contains \ batchfile") ?? или нет ?? – KeatC

+0

Хорошо, да что-то в этом роде. Возможно, внутри bfunction вам может потребоваться добавить больше кода, чем просто Popen. (обработка выходных данных, ошибки и т. д.) – finmor

+0

Хорошо, спасибо! Могу ли я попросить вас еще одну вещь, если это не проблема? В этой теме они используют stdout, stderr = p.communicate(). Когда я запускаю свой пакетный файл, у меня есть несколько файлов в результате, но я использую только некоторые из них (извините, я забыл написать это в своем вопросе). В этом стандарте, который я получаю с сообщением(), как я могу выбрать и использовать только файлы, которые я хочу? Поскольку, хотя командный файл работает нормально, я понятия не имею, как использовать этот stdout.I даже пытался с open ("boutput.txt", "w") как f: f.write (stdout), чтобы увидеть, что это такое, но у меня была ошибка TypeError: ожидается объект символьного буфера ... – KeatC