Python子进程不适用于我的find表达式

时间:2018-04-15 19:46:01

标签: subprocess

这适用于我的终端:

find "/tmp/pic" \( -iname *.JPG  \) | parallel -j 3 convert {} -resize 1920x -quality 60 "/tmp/pic2/{/}"

这不适用于python:

from subprocess import call
import shlex

call(shlex.split('find "/tmp/pic" \( -iname *.JPG  \) | parallel -j 3 convert {} -resize 1920x -quality 60 "/tmp/pic2/{/}"'), shell=True)

我发现this的问题有同样的错误。但建议的解决方案(shell=True)不起作用。 @abarnert描述的os.walk解决方案听起来合乎逻辑,但我只是想了解我的代码中出了什么问题。

1 个答案:

答案 0 :(得分:0)

shell为你做分裂:

from subprocess import call

call('find "/tmp/pic" \( -iname *.JPG  \) | parallel -j 3 convert {} -resize 1920x -quality 6\
0 "/tmp/pic2/{/}"', shell=True)