Hi, In the code below, cmd1 and cmd2 are equivalent, as in: " ".join(cmd1) == cmd2. But the first example returns a code 2, whereas the second runs successfully. What is the difference? I prefer using a list as it looks a little cleaner. Btw, shell=True is needed here.
# Python 2.7.3 (default, Jan 2 2013, 13:56:14) [GCC 4.7.2] on linux2 import subprocess #1# returns retcode 2 (whatever error that maybe) title, author, version = "title", "author", "1.0.0" output_dir, input_dir = '/tmp/input', '/tmp/output' cmd1 = [r'sphinx-apidoc', r'-f -F', r'-H', '"%s"' % title, r'-A', '"%s"' % author, r'-V', '"%s"' % version, r'-o', output_dir, input_dir] retcode = subprocess.call(cmd1, shell=True) assert not retcode, retcode #2# returns retcode 0 (succes) cmd2 = (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(cmd2, shell=True) assert not retcode, retcode # no AssertionError assert " ".join(cmd1) == cmd2 Thanks in advance! Regards, Albert-Jan ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ All right, but apart from the sanitation, the medicine, education, wine, public order, irrigation, roads, a fresh water system, and public health, what have the Romans ever done for us? ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor