自己动手写一些小程序解决工作中的问题,是学习 python 的高效途径。这中间会遇到一些不动手想不到的问题,一个一个地解决它们,你 python 开发水平就会突飞猛进!

本文总结一下实战 python 开发批量读取照片中 GPS 信息的小程序。

工作中,有时需要野外工作者实时拍摄一些照片,手机拍摄的照片中有GPS位置信息,我们需要提取这些照片中的位置信息,并对这些位置信息进行统计分析(比如工作路径、目标的分布)。

要提取这些照片中的位置信息,可以借助看图软件,有些看图软件有查看 exif 信息的功能,可以在看图软件中复制 exif 信息,再整理成表格。如下图所示:
这种方法处理少量照片是可以的,照片数量一多,这就成了一件痛苦的事,并且还容易出错。

学习 python,就想到自己动手写一个小程序,批量读取照片中的 GPS 信息。

程序结构

程序结构如下图所示:

  1. get_lng_lat.py 模块,读取照片的 exif 的主要模块,这里定义了一些函数和方法,遍历、读取文件夹下照片的 exif 信息,并对原始信息进行解析处理,将信息保存到 csv、xlsx 文件中;
  2. . lng_lat_correct.py模块,采用算法对 GPS 信息进行变换处理。
  3. ReadExif_win.py 模块,用 wxPython 设计的图形化窗口界面;
  4. ReadExif_main.py wxPython图形界面的主控模块;
  5. 最后用 pyinstaller 打包成 windows 可执行程序,界面如下图:

小程序的使用

下载得到的是一个压缩包,解压下载得到的压缩文件,双击运行其中的 ReadExif_main.exe 文件即可启动程序。免安装,无需安装 python 环境。

  • 点击第一个”浏览“按钮,打开资源管理器选择文件对话框,指定你要处理的照片所在的文件夹。

  • 点击第二个”浏览“按钮,打开资源管理器选择文件对话框,指定将读取的信息保存的位置文件夹。

  • 点击“开始读取”,根据读取的照片的数量和PC的性能,需要不等的时间,4000张照片,大概5-6分钟时间…

  • 完成后在下面信息框会显示一些信息,包括照片的位置、数量、Exif信息的csv/xlsx文件的位置、耗时、示例数据等。

  • 读取的信息处理后保存为 csv, xlsx 两个文件。

    有任何问题,欢迎到 Python草堂QQ群:457079928 讨论交流。有需要这个小程序的可以到这里下载:https://download.csdn.net/download/sinat_32570141/23457264
    ReadExifApp

纯 python 开发批量读取照片 Exif 信息的小程序相关推荐

  1. php 获取照片信息,PHP中读取照片exif信息的方法

    这篇文章主要介绍了PHP中读取照片exif信息的方法,本文从什么是exif信息开始讲解,使用PHP需要什么扩展.及它的安装方法和使用代码示例等,需要的朋友可以参考下 先来了解什么是图片的Exif信息 ...

  2. 使用python完成的一个烟花小程序-厉害了,我用Python写了一个自动回复拜年信息的小程序!...

    大年三十到年初一,有没有也被拜年短信(大部分是群发)搞得很焦虑?不回复似乎显得很没有礼貌,一一回复又累心劳神.一位大神程序员今年就用python拯救了自己的新年假期.这里分享这位社区博主happycc ...

  3. java exif 语言编码_Java读取图片EXIF信息的代码

    Java读取图片EXIF信息的代码 本文实例讲述了Java读取图片EXIF信息的方法.分享给大家供大家参考.具体分析如下: 首先介绍一下什么是EXIF,EXIF是Exchangeable Image ...

  4. 快速合并谷歌相册(Google Photo)批量导出的exif信息

    如题,谷歌相册已关闭不限量照片同步功能,批量导出以后谷歌的做法是将照片exif信息独立存放在json中,本教程帮助你快速合并. 1.下载免费工具:exiftool(点击下载,或者访问官网:ExifTo ...

  5. java exif 怎么获取属性_Java如何读取图片EXIF信息

    Java如何读取图片EXIF信息 大家知道Java如何读取图片属性信息吗?下面小编为大家整理了Java读取图片EXIF信息的方法,希望能帮到大家! 首先介绍一下什么是EXIF,EXIF是Exchang ...

  6. python数据库应用开发实例_纯Python开发的nosql数据库CodernityDB介绍和使用实例

    看看这个logo,有些像python的小蛇吧 .这次介绍的数据库codernityDB是纯python开发的. 先前用了下tinyDB这个本地数据库,也在一个api服务中用了下,一开始觉得速度有些不给 ...

  7. python怎么批量读取文件_python如何批量读取txt文件

    原标题:python如何批量读取txt文件 python批量读取txt文件的方法:首先导入系统模块:然后将文件夹路径更改为需要批量读取的txt文件存放的路径:再调用系统模块得到该文件夹下的所有文件名称 ...

  8. python运行时关闭硬件信息-Python实现的读取电脑硬件信息功能示例

    本文实例讲述了Python实现的读取电脑硬件信息功能.分享给大家供大家参考,具体如下: 上学那会,老师让我用java获取电脑硬件信息,CPU, 硬盘,MAC等,那个时候感觉搞了好久...... 今天, ...

  9. python软件电脑配置要求-Python实现的读取电脑硬件信息功能示例

    本文实例讲述了Python实现的读取电脑硬件信息功能.分享给大家供大家参考,具体如下: 上学那会,老师让我用java获取电脑硬件信息,CPU, 硬盘,MAC等,那个时候感觉搞了好久...... 今天, ...

最新文章

  1. oracle定时器怎么开启,Oracle的定时器使用示例
  2. NHibernate初学者指南(1):开篇
  3. 【造轮子】打造一个简单的万能Excel读写工具
  4. es6添加删除class_es6中class类的使用
  5. mac安装python虚拟环境_详解Mac配置虚拟环境Virtualenv,安装Python科学计算包
  6. python怎么加图片_python中如何保存图片
  7. 有了这组新年元旦海报PSD模板素材,不愁晚交稿!
  8. MSSQL Server 2008 功能
  9. 应用数据挖掘进行客户关系管理
  10. php过滤iframe,php过滤XSS攻击的函数
  11. Linux宝库幕后推手齐聚OpenInfra Days China
  12. K60(Cortex-M4)开源开发探索(一)—— K60简介
  13. 关于iPhone 5的适配
  14. 谷歌抢注18个“.中国”域名:下一盘很大的棋?
  15. jQuery DOM操作
  16. 第五篇:uCOS-IInbsp;信号量及其…
  17. 友元函数实现复数加减法
  18. 富文本编辑器:ckeditor(使用官网下载包)
  19. 【EPICS】在Ubuntu下安装epics及Asyn、Streamdevice工具包
  20. 堆栈内存的分析以及作用域的详解

热门文章

  1. 脑洞|手绘从零维到十维空间
  2. 视频编码失真测度:SAD、SATD、SSD、MSE、PSNR
  3. LintCode之玩具工厂
  4. php div 实现上中下布局,上中下结构DIV CSS布局实例
  5. android 画笔轨迹,Android中SurfaceView和view画出触摸轨迹
  6. Lumerical Python API学习之补充笔记
  7. 论文笔记:Pre-training to Match for Unified Low-shot Relation Extraction
  8. Linux基本指令(二)
  9. (盘点)25个值得收藏的Python文本处理案例
  10. 北京某高校可用的电话号码有以下几类,校内电话号码由4位数字组成,第1位数字不是0,校外电话又分为本市电话和外地电话两类,拨校外电话需先拨0,若是本市电话则再接着拨8位数字(第1位不是0)