首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何检查文件是否为合法的镜像文件?

如何检查文件是否为合法的镜像文件?
EN

Stack Overflow用户
提问于 2009-05-21 01:55:16
回答 5查看 137.7K关注 0票数 130

我目前正在使用PIL。

from PIL import Image
try:
    im=Image.open(filename)
    # do stuff
except IOError:
    # filename not an image file

然而,虽然这足以涵盖大多数情况,但一些图像文件,如,xcf,svg和psd没有被检测到。Psd文件抛出OverflowError异常。

有没有什么办法可以把它们也包括进来呢?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2009-05-20 17:58:26

很多时候,对于不同的文件格式,前几个字符是一个神奇的数字。除了上面的异常检查之外,你还可以检查这个。

票数 17
EN

Stack Overflow用户

发布于 2019-08-08 17:26:23

除了PIL映像检查之外,您还可以添加文件扩展名检查,如下所示:

filename.lower().endswith(('.png', '.jpg', '.jpeg', '.tiff', '.bmp', '.gif'))

请注意,这只检查文件名是否具有有效的图像扩展名,它实际上不会打开图像来查看它是否是有效的图像,这就是为什么您需要额外使用PIL或其他答案中建议的库之一。

票数 18
EN

Stack Overflow用户

发布于 2009-05-20 18:05:40

在Linux上,您可以使用python-magic,它使用libmagic来标识文件格式。

AFAIK,libmagic查看文件,并试图告诉你更多关于它的信息,而不仅仅是格式,比如位图尺寸,格式版本等。因此,你可能会认为这是对“有效性”的肤浅测试。

对于“有效”的其他定义,您可能需要编写自己的测试。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/889333

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档