On 10/3/07, stef mientki <[EMAIL PROTECTED]> wrote: > hello, > > I'm trying to launch a windows application, > but as many others on this list, I've some trouble. > I read some other threads about this topic, > but sorry, I still don't understand all this (never heard of pipes). > > When I use a batch file, I can launch the bat-file from python, > and the windows application launched from the batchfile is run perfectly. > > Now when I try to run the same windows application from Popen or call, > nothing happens (or at least it's very fast and produces not the > expected output). > > Please enlighten me, preferable in "windows-terminology" ;-) > > thanks, > Stef Mientki > > from subprocess import * > > cmd =[] > cmd.append ( 'D:\\PIC-tools\\JALxxx\\jalv2_3.exe' ) > cmd.append ( '-long-start' ) > cmd.append ( '-d') > cmd.append ( '-clear' ) > cmd.append ( '-sD:\\PIC-tools\\JAL\\libs2' ) > cmd.append ( 'd:\\pic-tools\\jal\\programs\\test_rs232\\test_rs232_hw.jal' ) > cmd.append ( '>d:\\data_actueel\\d7_test_browser\\temp.log' ) > > # DOESN'T WORK > result = call ( cmd ) > > # Both Popen and call work > cmd = [ 'd:\\data_actueel\\d7_test_browser\\JALcc.bat' ] > #output = Popen ( cmd ) > result = call ( cmd ) > print result
First, call is a convenience function, but in your case, it's probably not that convenient. Use the actual Popen constructor so you can get at the output directly. Also, ditch the output redirector and use a pipe: p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE) (out, err) = p.stdout, p.stderr rcode = p.wait() print out, err, rcode Try that and see what happens. When it doesn't work, look carefully in out and err and see if anything interesting is in there. I was able to open notepad.exe in this way with no problems so my guess is you're having some other problem, but avoiding the use of the convenience function will give you stdout and stderr to look at. -- Nick -- http://mail.python.org/mailman/listinfo/python-list