Issue with subprocess Module
Dave Angel
davea at ieee.org
Tue Apr 7 07:53:40 EDT 2009
tarun wrote:
> Hello All,
>
> I've a batch file to be invoke using a python script. The batch file has
> pause, and the time, I need to send some command to the batch file from my
> scripts. I placed both, the batch file (test.bat) and the python script
> (test.py) in the same folder. And executed 'test.py'
>
> (Please find the source files and error below).
>
> *I get the following error:*
> Traceback (most recent call last):
> File "<string>", line 74, in run_nodebug
> File "D:\test.py", line 4, in <module>
> proc = subprocess.Popen(my_bat,stdin=subprocess.PIPE)
> File "C:\Python25\lib\subprocess.py", line 588, in __init__
> errread, errwrite) = self._get_handles(stdin, stdout, stderr)
> File "C:\Python25\lib\subprocess.py", line 717, in _get_handles
> c2pwrite = self._make_inheritable(c2pwrite)
> File "C:\Python25\lib\subprocess.py", line 746, in _make_inheritable
> DUPLICATE_SAME_ACCESS)
> WindowsError: [Error 6] The handle is invalid
>
> *Python Script:*
> *test.py*
> import subprocess,os
> my_bat = os.getcwd()+'\\test.bat'
> proc = subprocess.Popen(my_bat,stdin=subprocess.PIPE)
> input = '\n'
> proc.communicate(input)
>
> *Batch File*
> *test.bat*
> echo "START'
> pause
> echo 'END'
> Please help me with this issue.
>
> Thanks In Advance,
> Tarun
>
>
subprocess.Popen() is expecting the name of a program, which should
normally have an extension of .exe You're handing it a .bat file,
which is not executable. It only executes in the context of a command
interpreter (shell), such as cmd.exe
You can probably do what you want by running "cmd.exe" and passing it
"test.bat" as a parameter
More information about the Python-list
mailing list