Red de conocimiento informático - Problemas con los teléfonos móviles - Python de reemplazo por lotes de texto de Word

Python de reemplazo por lotes de texto de Word

Mi esposa tiene innumerables documentos de Word que quiere reemplazar. Después de buscar en Baidu, descubrió que no existe un método preparado.

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()