运行外部子进程并读取返回代码

时间:2010-01-29 17:02:59

标签: python process subprocess return popen

我正在创建一个python脚本来对很多图像进行排序(游戏截图)。

我在imagemagick中找到了一种方法:我知道,如果图像的特定方块与参考裁剪相同,则图像属于第一类。如果没有,我检查另一个作物和另一个类别,如果不适合,我将图像放在第三类。

我在Imagemagick中找到了如何做到这一点:

convert file.jpg -crop 80x10+90+980 +repage crop.jpg
compare -metric PSNR reference.jpg crop.jpg crop.jpg

(我剪了一张图片,然后将那篇文章与“reference.jpg”进行比较)

如何从脚本中调用它,并根据转换返回值(它是一个数字)执行if?

1 个答案:

答案 0 :(得分:4)

import subprocess

retcode = subprocess.call(['convert', 'file.jpg', '-crop', 
                           '80x10+90+980', '+repage', 'crop.jpg'])
if retcode != 0:
    print 'error on convert'
else:
    retcode = subprocess.call(['compare', '-metric', 'PSNR', 
                               'reference.jpg', 'crop.jpg', 'crop.jpg'])
    print retcode