python用来获得图片exif信息的库实例分析
本文实例讲述了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程序设计有所帮助。