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

2 投票
2 回答
3243 浏览
提问于 2025-04-15 16:28

命令:

root@host:~#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.

上面的代码有什么问题?

2 个回答

0

你试过用 '"500x<"' 代替 '\'500x<\'' 吗?

5

为什么在 500x< 上有多余的引号呢?子进程会正确处理任何参数的引号。

要记住,外面的引号不会被传递给应用程序,只有被引号包裹的值会被传递。但是,如果你强制子进程,它会把引号也传递过去。

撰写回答