Извините, если этот вопрос задан 100 раз раньше, к сожалению, я его не нашел, если это было. Я хочу написать скрипт python, который вызовет фоновый процесс и проверит его, чтобы узнать, завершено ли оно. Я видел команду os.system, которая теперь рекомендуется использовать subprocess.call, но это, похоже, блокирует программу до тех пор, пока процесс не завершится.Использование подпроцесса python
Моя конечная цель иметь следующее:
1) прогонов программы и начинает processessing петь информация
2) На полпути через программу она начнет программу Windows, DOS, которые нужно будет запускать одновременно
3) Программа продолжает работать и продолжает обрабатывать данные.
4) Программа контролирует программу DOS и, когда она выходит, а затем отправляет окончательную информацию. Но для выполнения этого шага должна была выйти программа DOS.
Если кто-то может указать мне в правильном направлении, это было бы здорово.
Дополнительная информация: Я пытаюсь использовать процессор python, встроенный в Securecrt. Похоже, что окно программы CMD открыто для программы, но оно не распечатывает ни одну из средних команд (просто включите в этом примере), пока я не убью подпроцесс.
import os
import subprocess
def Main()
crt.Screen.Synchronous = True
VMCOMMAND = '\"C:\\Program Files\\VMWare\\VMware OVF Tool\\ovftool.exe\" ' + '--name=test' + ' C:\\temp\\test.ova' + ' vi://root:[email protected]'
from subprocess import Popen
p = Popen(VMCOMMAND)
crt.Screen.Send(chr(13))
crt.Screen.Send("enable" + chr(13))
crt.Screen.Send("enable" + chr(13))
crt.Screen.Send("enable" + chr(13))
crt.Screen.Send("enable" + chr(13))
returncode = p.wait()
crt.Screen.Send("should not see enable" + chr(13))
Main()
"программа для Windows DOS"? Программы предназначены для DOS или для Windows, нет такой вещи, как «Windows DOS program». –
Извините Ignacio, это Windows DoS-программа, работающая под Windows 7. Программа в основном представляет собой строку cmd для ovftool. – ozymandius100
OVFTool не для DoS, это для виртуализации. –