[Tutor] subprocess.call list vs. str argument

Albert-Jan Roskam fomcl at yahoo.com
Tue Feb 25 20:52:55 CET 2014



----- Original Message -----

> From: Danny Yoo <dyoo at hashcollision.org>
> To: Peter Otten <__peter__ at web.de>
> Cc: Python Tutor Mailing List <tutor at python.org>
> Sent: Monday, February 24, 2014 11:01 PM
> Subject: Re: [Tutor] subprocess.call list vs. str argument
> 
> Last comment (apologies for being so fragmented!).  I don't know why
> the literal strings there are raw there.  Altogether, I'd expect:
> 
> #############################################
> cmd1 = ['sphinx-apidoc',
>        '-f',
>        '-F',
>        '-H', title,
>        '-A', author,
>        '-V', version,
>        '-o', output_dir,
>        input_dir]
> retcode = subprocess.call(cmd1, shell=False)
> 
> #############################################


Hi Danny, Peter,

Thanks for helping me. Danny, your example works indeed and it is also very readable. And now I do not need to use shell=True anymore. The raw strings were a leftover from earlier attempts that contained the entire path (not even relevant under Linux, but I still did it). Here is why I used "shell=True" before. Is it related to the file paths?

    cmd = (r'sphinx-apidoc '
           r'-f -F '
           r'-H "%(title)s" '
           r'-A "%(author)s" '
           r'-V "%(version)s" '
           r'-o %(output_dir)s %(input_dir)s') % locals()
    retcode = subprocess.call(cmd)
Traceback (most recent call last):
  File "/home/albertjan/Downloads/documenter.py", line 188, in <module>
    rst_to_html(input_dir, output_dir, title="Test", author=getpass.getuser(), version="1.0.0")
  File "/home/albertjan/Downloads/documenter.py", line 118, in rst_to_html
    retcode = subprocess.call(cmd)
  File "/usr/lib/python2.7/subprocess.py", line 493, in call
    return Popen(*popenargs, **kwargs).wait()
  File "/usr/lib/python2.7/subprocess.py", line 679, in __init__
    errread, errwrite)
  File "/usr/lib/python2.7/subprocess.py", line 1259, in _execute_child
    raise child_exception
OSError: [Errno 2] No such file or directory

regards,
Albert-Jan


More information about the Tutor mailing list