Cómo organizar archivos adjuntos usando Python
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
if filename.endswith('.doc'):
subprocess.call('textutil -convert docx {0}'.format(fullname), shell=True) p>
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: p>
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