""" remainder, degrees = math.modf(abs(decimal)) remainder, minutes = math.modf(remainder * 60) return [Fraction(n) for n in (degrees, minutes, remainder * 60)] tup_photos = li_photos(r'test\img') li_pts = [] for photo in tup_photos: """ explore exif geotags of each photo """ print '\n', path.basename(photo) # with EXIF (https://github.com/ianare/exif-py) with open(photo, 'r') as tof: tags = EXIF.process_file(tof) coord_EXIF = (str(tags.get('GPS GPSLatitude')), str(tags.get('GPS GPSLongitude')), str(tags.get('GPS GPSAltitude'))) # with pyexiv2 md = pyexiv2.ImageMetadata(photo) md.read() lat = md.__getitem__("Exif.GPSInfo.GPSLatitude") latRef = md.__getitem__("Exif.GPSInfo.GPSLatitudeRef") lon = md.__getitem__("Exif.GPSInfo.GPSLongitude") lonRef = md.__getitem__("Exif.GPSInfo.GPSLongitudeRef") lat = str(lat).split("=")[1][1:-1].split(" "); lat = map(lambda f: str(float(Fraction(f))), lat) lat = lat[0] + u"\u00b0" + lat[1] + "'" + lat[2] + '"' + " " + str(latRef).split("=")[1][1:-1] lon = str(lon).split("=")[1][1:-1].split(" "); lon = map(lambda f: str(float(Fraction(f))), lon)