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)

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to