我目前正在使用PIL。
from PIL import Image
try:
im=Image.open(filename)
# do stuff
except IOError:
# filename not an image file
然而,虽然这足以涵盖大多数情况,但一些图像文件,如,xcf,svg和psd没有被检测到。Psd文件抛出OverflowError异常。
有没有什么办法可以把它们也包括进来呢?
发布于 2009-05-20 17:58:26
很多时候,对于不同的文件格式,前几个字符是一个神奇的数字。除了上面的异常检查之外,你还可以检查这个。
发布于 2019-08-08 17:26:23
除了PIL
映像检查之外,您还可以添加文件扩展名检查,如下所示:
filename.lower().endswith(('.png', '.jpg', '.jpeg', '.tiff', '.bmp', '.gif'))
请注意,这只检查文件名是否具有有效的图像扩展名,它实际上不会打开图像来查看它是否是有效的图像,这就是为什么您需要额外使用PIL
或其他答案中建议的库之一。
发布于 2009-05-20 18:05:40
在Linux上,您可以使用python-magic,它使用libmagic来标识文件格式。
AFAIK,libmagic查看文件,并试图告诉你更多关于它的信息,而不仅仅是格式,比如位图尺寸,格式版本等。因此,你可能会认为这是对“有效性”的肤浅测试。
对于“有效”的其他定义,您可能需要编写自己的测试。
https://stackoverflow.com/questions/889333
复制相似问题