本文实例讲述了python用来获得图片exif信息的库用法。分享给大家供大家参考。具体分析如下:
exif-py是一个纯python实现的获取图片元数据的python库,官方下载地址:
http://exif-py.svn.sourceforge.net/viewvc/exif-py/source/EXIF.py?revision=19&view=markup
# library test/debug function (dump given files)
if __name__ == '__main__':
import sys
import getopt
# parse command line options/arguments
try:
opts,args = getopt.getopt(sys.argv[1:],"hqsdt:v",["help","quick","strict","debug","stop-tag="])
except getopt.GetoptError:
usage(2)
if args == []:
usage(2)
detailed = True
stop_tag = 'UNDEF'
debug = False
strict = False
for o,a in opts:
if o in ("-h","--help"):
usage(0)
if o in ("-q","--quick"):
detailed = False
if o in ("-t","--stop-tag"):
stop_tag = a
if o in ("-s","--strict"):
strict = True
if o in ("-d","--debug"):
debug = True
# output info for each file
for filename in args:
try:
file=open(filename,'rb')
except:
print "'%s' is unreadable\n"%filename
continue
print filename + ':'
# get the tags
data = process_file(file,stop_tag=stop_tag,details=detailed,strict=strict,debug=debug)
if not data:
print 'No EXIF information found'
continue
x=data.keys()
x.sort()
for i in x:
if i in ('JPEGThumbnail','TIFFThumbnail'):
continue
try:
print ' %s (%s): %s' % \
(i,FIELD_TYPES[data[i].field_type][2],data[i].printable)
except:
print 'error',i,'"',data[i],'"'
if 'JPEGThumbnail' in data:
print 'File has JPEG thumbnail'
print
if __name__ == '__main__':
import sys
import getopt
# parse command line options/arguments
try:
opts,args = getopt.getopt(sys.argv[1:],"hqsdt:v",["help","quick","strict","debug","stop-tag="])
except getopt.GetoptError:
usage(2)
if args == []:
usage(2)
detailed = True
stop_tag = 'UNDEF'
debug = False
strict = False
for o,a in opts:
if o in ("-h","--help"):
usage(0)
if o in ("-q","--quick"):
detailed = False
if o in ("-t","--stop-tag"):
stop_tag = a
if o in ("-s","--strict"):
strict = True
if o in ("-d","--debug"):
debug = True
# output info for each file
for filename in args:
try:
file=open(filename,'rb')
except:
print "'%s' is unreadable\n"%filename
continue
print filename + ':'
# get the tags
data = process_file(file,stop_tag=stop_tag,details=detailed,strict=strict,debug=debug)
if not data:
print 'No EXIF information found'
continue
x=data.keys()
x.sort()
for i in x:
if i in ('JPEGThumbnail','TIFFThumbnail'):
continue
try:
print ' %s (%s): %s' % \
(i,FIELD_TYPES[data[i].field_type][2],data[i].printable)
except:
print 'error',i,'"',data[i],'"'
if 'JPEGThumbnail' in data:
print 'File has JPEG thumbnail'
希望本文所述对大家的Python程序设计有所帮助。