Alf P. Steinbach wrote:
* R (Chandra) Chandrasekhar:

width = 5
height = 30
colors = ['#abcdef]', '#456789']
filename = "/tmp/image.png"

# I want to get the equivalent of variable interpolation in Perl
# so that the command
#
# convert -size 5x30 gradient:#abcdef-#456789 /tmp/image.png
#
# is derived from the variables above

Assuming that the extra right square bracket in 'colors' is a typo, here's one way:

    s = "convert -size {w}x{h} gradient:{g1}-{g2} {f}".format(
        w = width, h = height, g1 = colors[0], g2 = colors[1], f = filename
        )


Cheers & hth.,

- ALf

Thanks, Alf. It works if I use it so:

subprocess.call(s, shell=True)

and I think that is because s is a single string assembled in almost the variable interpolation fashion of Perl. It does not work with the default shell=False argument, presumably because the arguments are not split into separate strings (something that was horrible to do by hand using the %s and %() syntax that I had tried out previously).

I think that you and Peter have, between you, shown me two ways of using subprocess.call(): one with shell=True and the other with shell = False.

Thanks.

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

Reply via email to