Issue with subprocess Module

Dave Angel davea at ieee.org
Tue Apr 7 13:53:40 CEST 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