Subprocess .wait() is not waiting

eryk sun eryksun at gmail.com
Fri Mar 24 16:36:56 EDT 2017


On Fri, Mar 24, 2017 at 6:42 PM, adam.c.bernier <adam.c.bernier at kp.org> wrote:
>
> I am on Windows 7. Python 2.7
>
> I'm trying to have a program run another program using `subprocess.Popen`
>
>     import subprocess as sp
>
>     args = shlex.split(args)

Is this command supposed to run cross-platform? If not, then splitting
it into a list is pointless. Windows uses a comand-line string, and
Popen will just have to rebuild the command line from the list.

>     proc = sp.Popen(args,stdout=sp.PIPE,stderr=sp.PIPE)
>     out, err = proc.communicate()
>     proc.wait()
>
> But it *sometimes* doesn't wait and the other program -- which generates a set of
> 14 Excel files -- does not complete before control is returned to the calling program.
>
> Any ideas on what I can do to make `subprocess.wait()` actually wait?
>
> Thanks in advance for any assistance you might be able to provide.

Without knowing the command you're running, all we can do is
speculate. It could be that it's an application that uses a single
instance, in which case running another instance simply messages the
main process and then exits.


More information about the Python-list mailing list