Python de reemplazo por lotes de texto de Word
Después de eso, Google tampoco fue adecuado. Escribí un script en Python para reemplazar todo el contenido de palabras en el directorio, pero *** no estaba dispuesto a ceder.
importar sistema operativo
desde docx importar documento
# Poner algunos archivos docx
files_dict = {
" /home/test/a/medical-device-clinical-trials-first-edition-design/":"/home/test /a/medical-device-clinical-trials-first-edition-design/",
?"/home/test/a/medical-device-clinical-trials-first-edition-management-system/":"/home/test/a/medical-device-clinical-trials-first-edition -management-system/",
"/home/test/a/medical-device-clinical-trials-first-edition-SOP/":"/home/test/a/medical-device- ensayos-clinicos-primera-edición -SOP/",
"/home/test/a/directory/":"/home/test/a/directory/"
}
replace_dict = {
"XXGNK": "XZDXGWK",
"Especialidad Cardiovascular": "Cirugía Macrovascular Cardíaca",
"cardiovascular": "cirugía macrovascular cardíaca",
}
def check_and_change(document, replace_dict):
"""
Recorra todos los párrafos en Word y, cuando se encuentre un párrafo que contenga una clave en cada párrafo, reemplácelo con valor
(la clave y el valor son pares clave-valor en replace_dict.
)
"""
para para en document.paragraphs:
para i en rango(len(para.runs)):
para clave, valor en replace_dict.items():
si clave en para.runs[i].text:
print(clave+"--> "+valor)
para.runs[i].text = para.runs[i].text.replace(clave, valor)
para tabla en document.tables:
para fila en tabla.filas:
para celda en fila.celdas:
para párrafo en celda.párrafos:
para i en rango(len ( para.runs)):
para clave, valor en replace_dict.items():
si clave en para.runs[i].text:
print(clave+"--> "+valor)
para.runs[i].text = para.runs[i].text.replace(clave, valor)
devolver documento
def main():
para old_file_path, new_file_path en files_dict.items():
para nombre en os.listdir(old_file_path):
imprimir(nombre)
archivo_antiguo = ruta_archivo_antiguo + nombre
archivo_nuevo = ruta_archivo_nuevo + nombre
if archivo_antiguo.split(".") [1] == 'docx':
documento = Documento(archivo_antiguo)
documento = verificar_y_cambiar(documento, reemplazar_dict)
documento.save(archivo_nuevo)
print("^"*30)
if __name__ == '__main__':
main()