Hi Gurus, I'm having some problem in using the communicate() along with the subprocess.I would like to invoke a command prompt and pass on a .bat file to execute. I went through the subprocess module and understood that using communicate, we can send the send data to stdin.
According to the documentation http://docs.python.org/library/subprocess.html#subprocess.call, it says, if you want to send data to the process’s stdin, you need to create the Popen object with stdin=PIPE. so based on this, I have used the below function but it does not seem to work. Am I missing something here? import subprocess import threading import time def runMonitor(command): retcode = subprocess.Popen([command, '\k', 'dir'], cwd= 'C:\Python26\WorkSpace\FunctionExamples\src', stdin = subprocess.PIPE, creationflags=subprocess.CREATE_NEW_CONSOLE) retcode.wait() retcode.communicate('scripts_to_execute.bat') t = threading.Thread(target = runMonitor, args = ("cmd.exe",)) t.start() while t.is_alive(): print 'Thread is still alive' time.sleep(0.5) else: print 'Thread is dead' Vijay Swaminathan
-- http://mail.python.org/mailman/listinfo/python-list