我正在尝试使用 subprocess.call 从 Python 2.7 调用 ImageMagick 命令。我的问题是子进程中的参数解析器在每个参数周围都放了一个双引号,而 ImageMagick 似乎对非文件参数周围的引号有问题。
我想要的是这样的
"imagemagick.exe" "im1.png" "im2.png" -alpha off ( ... ) -composite "im3.png"
到目前为止,除了手动构造带有丑陋+ " " +
元素的字符串并使用shell=True
.
这是我的代码:
args = [ imagemagick,
filename + "_b.bmp",
filename + "_w.bmp",
"-alpha off ( -clone 0,1 -compose difference -composite -negate ) ( -clone 0,2 +swap -compose divide -composite ) -delete 0,1 +swap -compose Copy_Opacity -composite",
filename + ".png" ]
subprocess.call( args )
有没有办法使用子进程调用不带双引号的正确命令?
更新:插入了完整的命令行。我想把那部分放在一起,而不是“alpha”,“-off”,......一个接一个。