如果您需要的不仅仅是扩展名,一种方法是读取JPEG标头,并检查其是否与有效数据匹配。格式为:
Start Marker | JFIF Marker | Header Length | Identifier0xff, 0xd8 | 0xff, 0xe0 | 2-bytes | "JFIF "
因此快速识别器将是:
def is_jpg(filename): data = open(filename,'rb').read(11) if data[:4] != 'xffxd8xffxe0': return False if data[6:] != 'JFIF ': return False return True
但是,这不会在体内捕获任何不良数据。如果您想要更强大的检查,可以尝试使用PIL加载它。例如:
from PIL import Imagedef is_jpg(filename): try: i=Image.open(filename) return i.format =='JPEG' except IOError: return False



