0

我正在编写一个 Python 脚本来根据照片的日期对照片进行排序。我也想包含视频,但没有像 EXIF 这样的元数据标准来处理照片。

在测试时,我注意到我可以使用 bash 找到视频的日期:

$ head -c 1600 DSC_7643.AVI | strings
AVI LIST&
hdrlavih8
LISTt
...
NIKON
nctgr
NIKON CORPORATION
NIKON D90
A1.00
 B1.00
2012:10:30 09:38:16
2012:10:30 09:38:16

如果我有这个列表,我可以迭代它以寻找可解析的日期并做出很好的猜测。

man页面显示strings:“在对象或其他二进制文件中查找可打印字符串”。不幸的是,这是一个很难在 Python 中搜索类似内容的描述,而且我不确切知道它正在做什么来实现其结果。是否有可以做类似事情的 Python 实用程序或库?

4

1 回答 1

0

与其寻找 Python 的替代品strings,不如简单地调用实际 strings的.

>>> lst=subprocess.check_output(('strings', 'DSC_7643.AVI')).split('\n')

看来AVI文件确实具有标准的元数据编码。GNU 程序extract声称可以做你想做的事:

>>> lst=subprocess.check_output(('extract', 'DSC_7643.AVI')).split('\n')

此外,似乎有一个用于提取元数据的 API 。它甚至有一个 Python 绑定

于 2013-08-13T05:56:50.500 回答