利用Python實(shí)現(xiàn)獲取照片位置信息
引言
通過(guò)一張照片居然發(fā)現(xiàn)女友在宿舍里沒去上課!強(qiáng)大的照片位置信息獲取,快來(lái)一起學(xué)習(xí)吧!
一、exifread函數(shù)庫(kù)
要怎樣獲得拍攝圖片的GPS呢?這里我們需要exifread 庫(kù),這個(gè)就是用來(lái)提取 GPS 信息的。直接 pip install exifread 來(lái)安裝就好了。
安裝exrfread庫(kù)(PyCharm)
打開settings如下圖

選擇+號(hào)搜索exifread

安裝即可
什么是exifread函數(shù)庫(kù)
原理:
先把圖片以二進(jìn)制的格式讀取出來(lái),然后通過(guò) exifread 庫(kù)把里面的 GPS 信息提取出來(lái),再以特定的格式打印出來(lái),最后直接復(fù)制里面的經(jīng)緯度信息,在支持通過(guò)經(jīng)緯度來(lái)查位置的地圖里一查就能定位到了。
二、獲取女朋友發(fā)來(lái)的照片(單身勿擾)

女朋友居然告訴我這只狗好可愛?
哪里可愛了?。??

將圖片放在代碼所在的目錄下
三、具體代碼實(shí)現(xiàn)
import exifread
import re
# 讀取圖片為二進(jìn)制格式
f = open("example2.jpg","rb")
tags = exifread.process_file(f)
# GPS信息
GPS = {}
# 拍攝時(shí)間
Data = ""
for tag,value in tags.items():
# 獲取緯度信息
if re.match('GPS GPSLatitude', tag):
try:
match_result=re.match('\[(\w*), (\w*), (\w.*)/(\w.*)\]', str(value)).groups()
GPS['緯度'] = str(int(match_result[0])) + " " + str(int(match_result[1])) + " " + str(int(match_result[2])/int(match_result[3]))
except:
GPS['緯度'] = str(value)
# 獲取緯度信息
elif re.match('GPS GPSLongitude', tag):
try:
match_result=re.match('\[(\w*), (\w*), (\w.*)/(\w.*)\]',str(value)).groups()
GPS['經(jīng)度'] = str(int(match_result[0])) + " " + str(int(match_result[1])) + " " + str(int(match_result[2])/int(match_result[3]))
except:
GPS['經(jīng)度'] = str(value)
# 獲取高度
elif re.match('GPS GPSAltitude', tag):
GPS['高度'] = str(value)
# 獲取拍攝時(shí)間
elif re.match('Image DateTime', tag):
Data = str(value)
# 打印信息
print("緯 經(jīng) 度:" + GPS['緯度'] + "," + GPS['經(jīng)度'])
print("拍攝時(shí)間:" + Data)
結(jié)果

四、經(jīng)緯度轉(zhuǎn)換
百度搜索經(jīng)緯度查詢

隨便點(diǎn)進(jìn)去一個(gè)能夠轉(zhuǎn)換的

輸入得到的經(jīng)緯度即可
可惡,居然在宿舍拍狗狗不去上課!?。?/p>
好了今天的分享就到這里,希望大家一起進(jìn)步!
到此這篇關(guān)于利用Python實(shí)現(xiàn)獲取照片位置信息的文章就介紹到這了,更多相關(guān)Python照片位置信息內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python+SQLAlchemy輕松實(shí)現(xiàn)管理數(shù)據(jù)庫(kù)
QLAlchemy是一個(gè)強(qiáng)大的ORM(對(duì)象關(guān)系映射)庫(kù),它允許您通過(guò)Python代碼與關(guān)系型數(shù)據(jù)庫(kù)進(jìn)行交互,本文我們將學(xué)習(xí)如何使用Python和SQLAlchemy庫(kù)來(lái)輕松管理數(shù)據(jù)庫(kù),需要的可以參考下2023-05-05
基于Numpy.convolve使用Python實(shí)現(xiàn)滑動(dòng)平均濾波的思路詳解
這篇文章主要介紹了Python極簡(jiǎn)實(shí)現(xiàn)滑動(dòng)平均濾波(基于Numpy.convolve)的相關(guān)知識(shí),非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-05-05
Python matplotlib繪制散點(diǎn)圖的實(shí)例代碼
這篇文章主要給大家介紹了關(guān)于Python matplotlib繪制散點(diǎn)圖的相關(guān)資料,所謂散點(diǎn)圖就是反映兩組變量每個(gè)數(shù)據(jù)點(diǎn)的值,并且從散點(diǎn)圖可以看出它們之間的相關(guān)性,需要的朋友可以參考下2021-06-06
Python socket處理client連接過(guò)程解析
這篇文章主要介紹了Python socket處理client連接過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-03-03
Python3爬蟲里關(guān)于Splash負(fù)載均衡配置詳解
在本篇文章里小編給大家分享了關(guān)于Python3爬蟲里關(guān)于Splash負(fù)載均衡配置的相關(guān)內(nèi)容,需要的朋友們可以學(xué)習(xí)參考下。2020-07-07
python實(shí)現(xiàn)刪除列表中某個(gè)元素的3種方法
這篇文章主要介紹了python實(shí)現(xiàn)刪除列表中某個(gè)元素的3種方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-01-01
如何使用pandas對(duì)超大csv文件進(jìn)行快速拆分詳解
Pandas是Python語(yǔ)言的一個(gè)擴(kuò)展程序庫(kù),提供高性能、易于使用的數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)分析工具,下面這篇文章主要給大家介紹了關(guān)于如何使用pandas對(duì)超大csv文件進(jìn)行快速拆分的相關(guān)資料,需要的朋友可以參考下2022-07-07

