¿Cómo puedo crear un documento de Word usando Python?

Me gustaría crear un documento de Word usando Python, sin embargo, quiero reutilizar la mayor cantidad posible de mi código de creación de documentos existente. Actualmente estoy usando un XSLT para generar un archivo HTML que convierto en un archivo PDF. Sin embargo, mi cliente ahora solicita que el mismo documento esté disponible en formato Word (.doc).

Hasta ahora, no he tenido mucha suerte en encontrar alguna solución a este problema. ¿Alguien sabe de una biblioteca de código abierto (o * gulp * una solución propietaria) que pueda ayudar a resolver este problema?

NOTA: Todas las soluciones posibles deben ejecutarse en Linux. Creo que esto elimina a pywin32.

Un par de formas en que puedes crear documentos de Word usando Python:

EDITAR:

Ya que COM está fuera de la cuestión, sugiero lo siguiente (inspirado en la respuesta de @kcrumley):

Usando la biblioteca de UNO para automatizar Open Office desde Python, abra el archivo HTML en OOWriter, luego guárdelo como .doc.

EDIT2:

Ahora hay un proyecto Python -docx de Python que se ve bien (no lo he usado).

Probé python-docx con éxito, te permite crear y editar docx dentro de Python

1) Si solo quiere pegar otro paso al final de su canalización actual, ahora hay varias opciones para convertir archivos PDF a archivos de Word. No he probado 123PDFConverter , pero los editores de CNET lo recomiendan (mismo enlace); tiene una versión de prueba gratuita; y soporta la automatización. Al igual que con cualquier convertidor de archivos de terceros, su millaje puede variar, dependiendo de lo complicados que sean sus archivos PDF y de lo bueno que sea realmente el software.

2) Sobre la base de la sugerencia de automatización COM de Codeape, si COM automatiza Word, puede abrir su archivo HTML real en Word y ejecutar el comando “Guardar como” para guardarlo como un archivo DOC.

También he tenido que hacer algo parecido con python. Es mucho más trabajo manual de lo que quiero, pero los documentos creados con pyRTF estaban causando que Word y OpenOffice colapsaran y no tuve la motivación para tratar de averiguarlo.

He encontrado que es más simple (pero no ideal) crear una plantilla de documento de Word con los estilos que deseo. Luego mi Python crea un archivo HTML cuyos estilos

están etiquetados después de los estilos de Word. Luego abro el archivo HTML en Word y abro la plantilla en Word. Corté y pegué todo el texto del archivo HTML en la plantilla, y Word lo reformatea de acuerdo con los estilos que había configurado anteriormente. Eso funciona para el archivo ocasional en mi situación. Puede que no funcione para su situación. Para tu información

¿Se puede escribir como los archivos XML de WordML y comprimirlos en formato .docx? Todo lo que su cliente necesitaría es el filtro de Word 2007 si aún no están en Office 2007.

Hay muchos ejemplos por ahí.

También puede cargar XML directamente en Word, a partir de 2003, o eso me han dicho .