photoes.jpg

作为超级APP,微信已经成了移动互联网的入口。而我们也早已习惯通过微信收发图片与视频等多媒体文件。身为一名屌丝通信狗,经常出差海外,跟家人的沟通方式主要就靠微信了,每当累了或抑郁了,打开微信看看媳妇儿和孩子的视频照片,就觉得开心多了。最终,微信变得越来越臃肿,视频与图片也必须早点保存到手机或者电脑。但是最终导出的文件命名是让人相当崩溃的。。。

是能忍 孰不能忍,作为一名有(xia)抱(zhe)负(teng)的屌丝,是绝不能容忍这么杂乱的文件命名的,也绝不可能因此就对这些文件逐一手动重命名的。

1. 使用自动化利器Python

作为批量处理文件的利器,当然非Python莫属了,而且有一堆优质库可供调用,基本搜索一下能解决90%需求。对于这个需求初始想法是直接通过os库获取文件的创始时间,依此来重新命名文件,可是最终发现os库获取的是文件第一次拷贝到系统的时间,并非文件的初始创建时间。比如,2016-09-10日19:00:23拷贝2016-06-16日10:00:00拍摄的视频文件到系统硬盘,系统就记录其时间为2016-09-10日19:00:23,并非6月16日。

上网搜了很久,发现使用exif与ffmpeg可以分别对照片与视频提取初始创建时间:

1.1 exif工具

使用exif工具查询当前目录下的pic1.png文件可以得到如下信息:

MacBook:BaiduYun meixuhong$ exif -i pic1.png

EXIF tags in 'pic1.png' ('Motorola' byte order):

------+------------------------------------------------------------------------

Tag |Value

------+------------------------------------------------------------------------

0x010f|Apple

0x0110|iPhone 6s

0x0112|Right-top

0x011a|72

0x011b|72

0x0128|Inch

0x0131|9.2.1

0x0132|2016:03:08 21:22:46

显然获取到照片拍摄时间为2016:03:08 21:22:46。

1.2 ffmpeg工具

ffmpeg自然不用多说,一款开源的牛逼哄哄的绝大多数开发者与公司都在用的音频解码软件。使用它解析视频文件自然也不在话下。如使用它解析1.mov文件,则会输出如下信息:

MacBook:BaiduYun meixuhong$ ffmpeg -i 1.mov

ffmpeg version 3.1.3 Copyright (c) 2000-2016 the FFmpeg developers

#略去若干字

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '1.mov':

Metadata:

major_brand : qt

minor_version : 0

compatible_brands: qt

creation_time : 2016-07-10 09:36:54

com.apple.quicktime.location.ISO6709: +30.2216+115.9852-244.943/

com.apple.quicktime.make: Apple

com.apple.quicktime.model: iPhone 6s

com.apple.quicktime.software: 9.3.2

com.apple.quicktime.creationdate: 2016-07-10T17:36:54+0800

Duration: 00:01:05.95, start: 0.000000, bitrate: 8559 kb/s

#略去若干字

获取到视频文件拍摄于2016-07-10 09:36:54。

这俩工具当然无懈可击,可是要想用python解析的话就得使用进程调用它们,而且只能将输出结果保存在文本中,那如果有300个文件就得要输出300个文本文件,很复杂,显然不是我要的结果,需要换思路。

1.3 杀鸡焉用牛刀 - 小巧的Hachoir

实现过程到还是到我的项目主页Github一览吧。

执行完Python脚本,再来看各个文件名,以具体拍照时间格式严格命名并排序,感觉整个世界瞬间变得美好了。

python 微信视频_基于Python快速整理微信视频与图片相关推荐

  1. python发送文件给微信好友_基于Python实现定时自动给微信好友发送天气预报

    效果图 from wxpyimport * import requests from datetimeimport datetime import time from apscheduler.sche ...

  2. python编辑器安装视频_基于 Python 的视频编辑器——MoviePy

    MoviePy 是一个用于视频编辑的Python库. 授权协议:MIT 开发语言:Python 操作系统:跨平台 简介 MoviePy 是一个用于视频编辑的Python库:剪切,连接,标题插入,视频合 ...

  3. python自动化测试开发_基于python的selenium2自动化测试从基础到实战(Python3、selenium2、自动化测试、web测试)...

    Selenium2是目前比较流行的一款针对web页面测试的自动化测试工具,他的前身是Selenium .Selenium测试直接运行在浏览器中,就像真正的用户在操作一样.支持的浏览器包括IE.Mozi ...

  4. cv2 python 获取斑马线_基于python的opencv图像处理实现对斑马线的检测示例

    基本思路 斑马线检测通过opencv图像处理来进行灰度值转换.高斯滤波去噪.阈值处理.腐蚀和膨胀后对图像进行轮廓检测,通过判断车辆和行人的位置,以及他们之间的距离信息,当车速到超过一定阈值时并且与行人 ...

  5. 基于python爬虫数据处理_基于Python爬虫的校园数据获取

    苏艺航 徐海蛟 何佳蕾 杨振宇 王佳鹏 摘要:随着移动时代的到来,只适配了电脑网页.性能羸弱的校园教务系统,已经不能满足学生们的移动查询需求.为此,设计了一种基于网络爬虫的高实用性查询系統.它首先通过 ...

  6. python点名代码_基于python tkinter的点名小程序功能的实例代码

    基于python tkinter的点名小程序功能的实例代码,花名册,次数,窗口,未找到,初始化 基于python tkinter的点名小程序功能的实例代码 易采站长站,站长之家为您整理了基于pytho ...

  7. python 量化交易_基于Python的量化交易工具清单(上)

    -- Python量化工具清单 -- 以下内容来源于Wilson Freitas的Github项目"Awesome Quant".原文中包含了丰富的语言类别,但是后续介绍主要针对P ...

  8. python画球鞋_基于Python爬虫原理的篮球鞋选择程序的设计与实现

    基于 Python 爬虫原理的篮球鞋选择程序的设计与实现 张世元 [期刊名称] <通讯世界> [年 ( 卷 ), 期] 2019(026)002 [摘要] 伴随着篮球鞋工艺的进步及产业升级 ...

  9. python空间数据处理_基于Python语言的空间数据处理

    龙源期刊网 http://www.doczj.com/doc/7b0e0476172ded630a1cb662.html 基于Python语言的空间数据处理 作者:何丽娴甘淑陈应跃 来源:<价值 ...

  10. python 英语分词_基于Python NLTK库进行英文文本预处理

    文本预处理是要文本处理成计算机能识别的格式,是文本分类.文本可视化.文本分析等研究的重要步骤.具体流程包括文本分词.去除停用词.词干抽取(词形还原).文本向量表征.特征选择等步骤,以消除脏数据对挖掘分 ...

最新文章

  1. 1054 The Dominant Color
  2. android:clipToPadding和android:clipChildren
  3. TF之DNN:对DNN神经网络进行Tensorboard可视化(得到events.out.tfevents本地服务器输出到网页可视化)
  4. 活动 | 5G万物智联下互联网通信技术升级之路
  5. windows修改策略后执行命令_Windows 下的提权大合集
  6. android默认获取敏感权限
  7. Quiz 92 - twisted
  8. 一段 关于 观察者 和 唯识 的文字 (转帖摘录)
  9. iOS中POST请求
  10. Centos 7 安装 PostgreSQL
  11. Visio高级使用技巧
  12. MybatisCodeHelperPro的使用
  13. Java SHA哈希示例
  14. 内向的孩子学医好还是学计算机好,什么性格适合学医 哪种人不适合学医
  15. 请介绍一下ivac 2L
  16. Lake Shore低温探针台的晶圆安装方法
  17. Qt学习之显示类的控件(QLabel、QTextBrowser、QGraphicsView、QCalendarWidget、QWebView、QProgressBar、QOpenGLWidget)
  18. MyBatis动态sql之choose(when、otherwise)用法
  19. 打开VT-x/VT-d功能
  20. 远程连接oracle01017,連接Oracle遠程數據庫錯誤:ORA-12541,ORA-12514,ORA-01017的解決方法!...

热门文章

  1. 人生的智慧 读书笔记
  2. 创建自己的 OSM.Planet 街道级别地图服务器,汉化地名避免万国语
  3. Allowed memory size of 268435456 bytes exhausted (tried to allocate 262144 bytes)
  4. 火猴实现计时动画(firemonkey)
  5. python模拟浏览器打开百度首页并登录或者点击首页新闻并保存网页
  6. python的api是什么意思_python中api的使用方法是什么
  7. 基于AR模型的功率谱matlab,基于AR模型法功率谱估计的Matlab实现
  8. mysql:大于、等于、小于写法
  9. MEMS 陀螺仪抗震动
  10. 计算机体系结构基础引言