我正在制作一个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
的{{1}}页说:“在对象或其他二进制文件中查找可打印的字符串”。不幸的是,这是一个非常难以在Python中搜索类似内容的描述,而且我不知道它正在做什么来实现它的结果。是否有可以执行类似操作的Python实用程序或库?
答案 0 :(得分:0)
不是搜索strings
的Python替代品,只需调用实际 strings
。
>>> lst=subprocess.check_output(('strings', 'DSC_7643.AVI')).split('\n')
AVI文件的appears
有一个标准的元数据编码。 GNU计划extract
声称可以做你想做的事:
>>> lst=subprocess.check_output(('extract', 'DSC_7643.AVI')).split('\n')
此外,似乎有an API用于提取元数据。它甚至有a Python binding。