• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

子流程错误处理滑倒

python 来源:user1978912 3次浏览

我一直在这一点上停留。基本上我遵循了一些子进程使用示例,但我想我还有其他一些问题。子流程错误处理滑倒

我正在编写一个脚本,通过一个电影文件目录运行并运行exiftool每个人都拉出一些关于他们的信息。

我可以使它工作,直到我遇到一个exiftool错误的情况。如Error: File format error …所以我试图捕捉那个或任何错误,即exiftool生成(即使错误消息可以很方便地作为变量),并跳过该文件。

在下面的代码中,myArg只是该文件的路径。

try: 
    proc = subprocess.Popen(["exiftool", "-s", "-ImageWidth", "-ImageHeight", "-VideoFrameRate", "-CompressorName", "-MediaDuration", myArg], stdout=subprocess.PIPE) 
    (out, err) = proc.communicate() 
except OSError: 
    print "Pass, something is borked..." 
    pass 

===========解决方案如下:

我想你要寻找的是从exiftool获得的退出代码。它应该成功返回0,因此检查您可以在proc.communicate()之后添加这样的错误:

if proc.returncode != 0: 
    print "Pass, something is borked..." 

如果错误讯息,到标准输出,你应该在你的out变量。如果它转到stderr,请将stderr=subprocess.PIPE添加到您的pOpen命令中,然后它应该在err中。


版权声明:本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。
喜欢 (0)