Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.python > #37956
| From | Terry Reedy <tjreedy@udel.edu> |
|---|---|
| Subject | Re: how to use subprocess to execute an exe with args and an output |
| Date | 2013-01-30 14:58 -0500 |
| References | <7c1ddf67-5a76-4e11-8ff9-1a60ef35d102@googlegroups.com> <51096267.4040604@mrabarnett.plus.com> |
| Newsgroups | comp.lang.python |
| Message-ID | <mailman.1225.1359575925.2939.python-list@python.org> (permalink) |
On 1/30/2013 1:11 PM, MRAB wrote: > On 2013-01-30 17:15, noydb wrote: >> I am looking for some guidance on using subprocess to execute an EXE >> with arguments and an output. The below code works in that it returns >> a 0 exit code, but no output file is created. I have tried a few >> different versions of this code (used Popen instead, some >> stderr/stdout), but no luck. Can anyone offer an explanation or >> suggestion? (GPSBabel is freeware) >> Python 2.7 on windows7 64-bit >> >> import subprocess >> subprocess.call([r"C:\Program Files (x86)\GPSBabel\gpsbabel.exe", >> "-i", "gdb", "-f", r"C:\Temp\GDBdata\testgps28.gdb", >> "-o", "gpx", r"C:\Temp\gpx\test28output.gpx"]) >> >> If I use this below, I get a returncode of 1, exit code of 0. >> import subprocess >> x = subprocess.Popen([r"C:\Program Files (x86)\GPSBabel\gpsbabel.exe", >> "-i", "gdb", "-f", r"C:\Temp\GDBdata\testgps28.gdb", >> "-o", "gpx", r"C:\Temp\gpx\test28output.gpx", >> "shell=True", "stdout=subprocess.PIPE", >> "stderr=subprocess.PIPE"]) >> >> x.wait() >> print x.returncode >> >> Thanks in advance for any help >> > The second example is incorrect. The parts starting from "shell" are > supposed to be further arguments for Popen itself, not something passed > to "gpsbabel.exe": > > x = subprocess.Popen([r"C:\Program Files (x86)\GPSBabel\gpsbabel.exe", > "-i", "gdb", "-f", r"C:\Temp\GDBdata\testgps28.gdb", > "-o", "gpx", r"C:\Temp\gpx\test28output.gpx"], > shell=True, stdout=subprocess.PIPE, > stderr=subprocess.PIPE) > and it is apparently best to not use shell=True unless actually needed for shell processing, which I do not think is the case here. -- Terry Jan Reedy
Back to comp.lang.python | Previous | Next — Previous in thread | Find similar | Unroll thread
how to use subprocess to execute an exe with args and an output noydb <jenn.duerr@gmail.com> - 2013-01-30 09:15 -0800 Re: how to use subprocess to execute an exe with args and an output noydb <jenn.duerr@gmail.com> - 2013-01-30 09:19 -0800 Re: how to use subprocess to execute an exe with args and an output Chris Rebert <clp2@rebertia.com> - 2013-01-30 09:57 -0800 Re: how to use subprocess to execute an exe with args and an output MRAB <python@mrabarnett.plus.com> - 2013-01-30 18:11 +0000 Re: how to use subprocess to execute an exe with args and an output noydb <jenn.duerr@gmail.com> - 2013-01-30 10:40 -0800 Re: how to use subprocess to execute an exe with args and an output Terry Reedy <tjreedy@udel.edu> - 2013-01-30 14:58 -0500
csiph-web