Red de conocimiento informático - Material del sitio web - Organiza rápidamente vídeos e imágenes de WeChat basados ​​en Python

Organiza rápidamente vídeos e imágenes de WeChat basados ​​en Python

Como súper APP, WeChat se ha convertido en la entrada a Internet móvil. Y hace mucho que estamos acostumbrados a enviar y recibir archivos multimedia, como imágenes y vídeos, a través de WeChat. Como perro de comunicación diaosi, viajo a menudo al extranjero y dependo principalmente de WeChat para comunicarme con mi familia. Cuando me siento cansado o deprimido, abro WeChat y miro los videos y fotos de mi esposa e hijos, y me siento mucho. más feliz. Con el tiempo, WeChat se volvió cada vez más inflado y los videos y las imágenes tuvieron que guardarse temprano en teléfonos móviles o computadoras. Pero el nombre del archivo exportado final es bastante frustrante. . .

No puedo tolerarlo. Como diaosi con (xia) (zhe) negativo (teng), nunca toleraré nombres de archivos tan desordenados y nunca tendré razón al respecto. renombrados manualmente uno por uno.

Como herramienta poderosa para el procesamiento de archivos por lotes, por supuesto es Python, y hay un montón de bibliotecas de alta calidad disponibles para su uso. Una búsqueda básica puede resolver el 90% de sus necesidades. La idea inicial para este requisito era obtener directamente la hora de creación del archivo a través de la biblioteca del sistema operativo y cambiar el nombre del archivo en consecuencia. Sin embargo, finalmente se descubrió que la biblioteca del sistema operativo obtuvo la hora en que el archivo se copió por primera vez en el sistema, no. la hora de creación inicial del archivo. Por ejemplo, si copia el archivo de vídeo grabado a las 10:00:00 del 16 de junio de 2016 al disco duro del sistema a las 19:00:23 del 10 de septiembre de 2016, el sistema registrará la hora como 19:00:23. el 10 de septiembre de 2016, no el 16 de junio.

Después de buscar en Internet durante mucho tiempo, descubrí que exif y ffmpeg se pueden usar para extraer el tiempo de creación inicial de fotos y videos respectivamente:

Exif se usa para almacenar el información de atributos y datos de captura de fotografías digitales. Se puede adjuntar a archivos JPEG, TIFF, RIFF y otros archivos para agregar contenido sobre información de captura de cámaras digitales e imágenes indexadas o información de la versión del software de procesamiento de imágenes.

Utilice la herramienta exif para consultar el archivo pic1.png en el directorio actual para obtener la siguiente información:

MacBook: BaiduYun meixuhong$ exif -i pic1.png

Obviamente la foto fue tomada a las 2016:03:08 21:22:46.

No hace falta decir que ffmpeg es un software de decodificación de audio de código abierto que utilizan la mayoría de los desarrolladores y empresas. Es fácil usarlo para analizar archivos de video. Si lo usa para analizar el archivo 1.mov, se generará la siguiente información:

MacBook: BaiduYun meixuhong$ ffmpeg -i 1.mov

El archivo de video obtenido fue tomado el 10/07/2016 09:36:54.

Por supuesto, estas dos herramientas son impecables, pero si desea usar Python para analizar, debe usar un proceso para llamarlas y los resultados de salida solo se pueden guardar en texto, por lo que si hay 300 archivos, tienes que generar 300. El archivo de texto es muy complicado y obviamente no es el resultado que quiero. Necesito cambiar mi forma de pensar.

Hachoir es una biblioteca de Python para ver y editar un flujo binario campo por campo. En otras palabras, Hachoir le permite "explorar" cualquier flujo binario tal como navega por directorios y archivos. p> Es decir, usando Hachoir, puede ver directamente el archivo binario del archivo y extraer los metadatos del archivo para obtener el tiempo de creación inicial de fotografías y videos digitales.

Para conocer el proceso de implementación, vaya a la página de inicio de mi proyecto, Github, para verlo.

Después de ejecutar el script de Python, mire cada nombre de archivo nuevamente, nómbrelos estrictamente y ordénelos de acuerdo con el formato de tiempo de la foto específico, y sienta que el mundo entero ha mejorado instantáneamente.