[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