2009-11-28 126 views
2

命令:如何将此命令传递给subprocess.call?

[email protected]:~#convert source.jpg -resize x500 -resize "500x<" -gravity center +repage target.jpg 

Python代码:

>> command_list = ['convert', 'source.jpg', '-resize', 'x500', '-resize', '\'500x<\'', '-gravity', 'center', 'target.jpg'] 
>> p = subprocess.call(command_list) 
convert: invalid argument for option `'500x<'': -resize. 

什么是错在上面的代码?

回答

5

为什么500x<额外的报价?子进程将正确引用任何参数。

请记住,外壳不会通过外引号的应用程序,只需引用值,但如果你把它强制子将通过报价。

+1

更准确,论据并不需要在一般的引用 - 只有当你传递一个命令行外壳或系统() – 2009-11-28 05:45:49

0

你试过'"500x<"'而不是'\'500x<\''