Red de conocimiento informático - Material del sitio web - Cómo organizar archivos adjuntos usando Python

Cómo organizar archivos adjuntos usando Python

Este artículo le presenta cómo usar Python para organizar archivos adjuntos. Los amigos que estén aprendiendo Python pueden consultarlo.

Actualmente, hay más de 500 currículums en mi carpeta. Si quiero saber alguna información, como escuela, calificaciones académicas, etc., necesito abrir cada palabra para verlo, lo cual es demasiado. pérdida de tiempo. En este momento, Python necesita intervenir.

Destino

Actualmente es similar a la palabra 600 en la captura de pantalla. Me gustaría organizarla brevemente:

Se puede navegar y organizar en un. excel (similar a un directorio). Puede utilizar Excel para localizar rápidamente el archivo adjunto deseado y el efecto es el siguiente:

Implementación específica

¡Cómo especificar el objetivo! Las ideas de implementación y organización son relativamente simples: recorrer todos los archivos de Word, obtener y guardar la información clave en Word para sobresalir.

Los siguientes son los principales módulos utilizados:

importar xlsxwriter

importar subcess

importar os

importar docx

import sys

import rexlsxwriter se usa principalmente para operar Excel, mientras que xlsxwriter solo se puede usar para escribir. Es más eficiente que xlwt y tiene una pequeña cantidad de datos. está bien usar xlwt.

El subproceso se utiliza principalmente para llamar a la línea de comando. Debido a que el módulo docx no puede analizar el archivo doc word, el archivo doc debe convertirse en un archivo docx antes de analizarlo y luego analizarlo.

os se utiliza principalmente para recorrer carpetas para obtener archivos.

docx se utiliza principalmente para analizar documentos de Word.

Especifique el nombre del archivo

En primer lugar, primero estandarizamos el nombre del archivo, porque cuando se usa subcess.call para llamar al comando, no se pueden escapar espacios, caracteres especiales, etc. y causar errores, por lo que hasta entonces, simplemente solucione este problema potencial.

def remove_doc_special_tag():

para el nombre de archivo en os.listdir(ruta):

otherName = re.sub("[s !/_, $ ^*( "')] |[ --()? ""! ,...? , ~@#$? amp;*()] ", "",nombre de archivo)

os. rename(os.path.join(ruta, nombre de archivo), os.path.join(ruta, otronombre)) Iterar sobre los archivos

Después de eso, podemos comenzar a trabajar e iterar a través de cada archivo para analizar:

p>

path='/Users/cavin/Desktop/files'

para el nombre de archivo en os.listdir(ruta):

.. La lógica específica se encuentra aquí Problema, en primer lugar, el módulo docx no puede analizar el documento en el documento de Word. Debido a que estoy usando una Mac, no puedo usar el módulo win32com. Más tarde, Google encontró ese documento. se puede convertir a docx mediante comandos

Lo que debe tenerse en cuenta aquí es que el estilo del archivo docx convertido se pierde, pero esto no afecta mi capacidad para obtener información de texto

El siguiente es el código. Si es un archivo doc, conviértalo a docx primero y luego elimínelo después del análisis.

if filename.endswith('.doc'):

subprocess.call('textutil -convert docx {0}'.format(fullname), shell=True)

nombre completo= nombre completo[:-4] ".docx"

sheetModel= etl_word_files(nombre completo)# Analizar lógica de texto

subprocess.call('rm {0} '.format(fullname), shell=True)# Elimina el archivo convertido para analizar el archivo de palabras

El siguiente paso es analizar el archivo, lo cual es fácil de lograr a través del módulo docx El análisis específico. La lógica no se publicará, es recorrer cada línea e interceptar los datos en función de algunas palabras clave y símbolos (el formato de cada currículum es básicamente el mismo)

doc = docx.Document(fullname)

p>

para párrafos en doc.:

print(para.text)

... lógica de análisis específica... complete los datos directamente en Excel:

workbook = xlsxwriter. Workbook('report_list.xlsx')

worksheet = workbook.add_worksheet(' list')

... Lógica de análisis específica

worksheet.write( 0, 3, 'edad')

worksheet.write(0, 4, 'lugar nativo')

worksheet.write(0, 5 , 'ubicación actual')

worksheet.write(0, 6, 'nivel educativo')

worksheet.write(0, 7. 'Escuela')

worksheet.write(0, 8 , 'empresa')

worksheet.write(0, 9, 'posición')

worksheet.write(0, 10, 'documento link') Aquí es donde completar el enlace del documento El punto principal, ya que desea mostrárselo a otros, solo asegúrese de que el archivo adjunto y Excel estén en la misma carpeta y use una ruta relativa para lograrlo. Función de Excel HYPERLINK:

worksheet.write(index, 10, '=HYPERLINK("./' filename '", "Annex")') Problemas

En este punto, la Básicamente se pueden implementar las funciones correspondientes, pero aún no es perfecto, principalmente debido al formato en Word. No está estandarizado y no hay una buena manera de obtener con precisión los datos que quiero, pero la mayoría de los nombres de las escuelas principales, etc. capturado, lo que también facilita algunas tareas.

Resumen

El uso de Python aún reduce cierta duplicación de trabajo, pero parece no haber una buena manera de lidiar con algunas cosas no estándar.

Si bien es posible agregar lógica para hacerlo compatible con estos no estándares, el esfuerzo y el resultado son obviamente algo desproporcionados.

Ya sea duplicar trabajo para tontos o reducirlo mediante código, realmente depende de cómo utilices las herramientas a tu disposición para aumentar la eficiencia.

Sugerencias relacionadas;

Utilice Python para crear rápidamente servicios y archivos HTTP **** Disfrute del servicio

Utilice Python para supervisar el contenido de los cambios de archivos en el código