python 通過exifread讀取照片信息
通過第三方庫exifread讀取照片信息。
exifread官網(wǎng):https://pypi.org/project/ExifRead/
一、安裝exifread
pip install exifread
二、讀取照片信息,以及根據(jù)經(jīng)緯度通過百度地圖API獲取位置
import exifread
import json
import urllib.request
# Open image file for reading (binary mode)
f = open('001.jpg', 'rb')
# Return Exif tags
tags = exifread.process_file(f)
'''
#打印所有照片信息
for tag in tags.keys():
print("Key: {}, value {}".format(tag, tags[tag]))
'''
#打印照片其中一些信息
print('拍攝時間:', tags['EXIF DateTimeOriginal'])
print('照相機(jī)制造商:', tags['Image Make'])
print('照相機(jī)型號:', tags['Image Model'])
print('照片尺寸:', tags['EXIF ExifImageWidth'], tags['EXIF ExifImageLength'])
#獲取經(jīng)度或緯度
def getLatOrLng(refKey, tudeKey):
if refKey not in tags:
return None
ref=tags[refKey].printable
LatOrLng=tags[tudeKey].printable[1:-1].replace(" ","").replace("/",",").split(",")
LatOrLng=float(LatOrLng[0])+float(LatOrLng[1])/60+float(LatOrLng[2])/float(LatOrLng[3])/3600
if refKey == 'GPS GPSLatitudeRef' and tags[refKey].printable != "N":
LatOrLng=LatOrLng*(-1)
if refKey == 'GPS GPSLongitudeRef' and tags[refKey].printable != "E":
LatOrLng=LatOrLng*(-1)
return LatOrLng
#調(diào)用百度地圖API通過經(jīng)緯度獲取位置
def getlocation(lat,lng):
url = 'http://api.map.baidu.com/geocoder/v2/?location=' + lat + ',' + lng + '&output=json&pois=1&ak=申請的百度地圖KEY'
req = urllib.request.urlopen(url)
res = req.read().decode("utf-8")
str = json.loads(res)
#print(str)
jsonResult = str.get('result')
formatted_address = jsonResult.get('formatted_address')
return formatted_address
lat = getLatOrLng('GPS GPSLatitudeRef','GPS GPSLatitude') #緯度
lng = getLatOrLng('GPS GPSLongitudeRef','GPS GPSLongitude') #經(jīng)度
print('緯度:{} 經(jīng)度:{}'.format(lat, lng))
location = getlocation(str(lat), str(lng))
print('位置:{}'.format(location))
以上就是python 通過exifread讀取照片信息的詳細(xì)內(nèi)容,更多關(guān)于python 讀取照片信息的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Python調(diào)用VBA實(shí)現(xiàn)保留原始樣式的表格合并方法
本文主要介紹了Python調(diào)用VBA實(shí)現(xiàn)保留原始樣式的表格合并方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-01-01
Python collections中的雙向隊(duì)列deque簡單介紹詳解
這篇文章主要介紹了Python collections中的雙向隊(duì)列deque簡單介紹詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11
PyTorch中 tensor.detach() 和 tensor.data 的
這篇文章主要介紹了PyTorch中 tensor.detach() 和 tensor.data 的區(qū)別解析,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-04-04
Python采集數(shù)據(jù)保存CSV文件出現(xiàn)內(nèi)容亂碼的解決方法
這篇文章主要為大家詳細(xì)介紹了如何解決Python中保存CSV文件內(nèi)容亂碼的問題,并提供詳細(xì)的示例代碼以更好地理解和解決這個問題,希望對大家有所幫助2024-03-03
Python cookbook(數(shù)據(jù)結(jié)構(gòu)與算法)通過公共鍵對字典列表排序算法示例
這篇文章主要介紹了Python cookbook(數(shù)據(jù)結(jié)構(gòu)與算法)通過公共鍵對字典列表排序算法,結(jié)合實(shí)例形式分析了Python基于operator模塊中的itemgetter()函數(shù)對字典進(jìn)行排序的相關(guān)操作技巧,需要的朋友可以參考下2018-03-03
Python3.10動態(tài)修改Windows系統(tǒng)本地IP地址
這篇文章主要介紹了Python3.10動態(tài)修改Windows系統(tǒng)本地IP地址,需要的朋友可以參考下2023-05-05
python 安裝virtualenv和virtualenvwrapper的方法
下面小編就為大家?guī)硪黄猵ython 安裝virtualenv和virtualenvwrapper的方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-01-01
Python 讀取xml數(shù)據(jù),cv2裁剪圖片實(shí)例
這篇文章主要介紹了Python 讀取xml數(shù)據(jù),cv2裁剪圖片實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-03-03
Python中CSV文件(逗號分割)實(shí)戰(zhàn)操作指南
CSV文件默認(rèn)以英文逗號做為列分隔符,換行符作為行分隔符,下面這篇文章主要給大家介紹了關(guān)于Python中CSV文件(逗號分割)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-07-07

